2021-08-17 David Kilzer [Metal ANGLE] Fix over-autorelease of rx::DisplayMtl::getMetalDeviceMatchingAttribute() and various Objective-C leaks Reviewed by Alex Christensen. * src/libANGLE/renderer/metal/DisplayMtl.h: (rx::DisplayMtl::getMetalDeviceMatchingAttribute): - Change to return mtl::AutoObjCPtr<> to make ownership clear. (rx::DisplayMtl::mMetalDevice): - No need to initialize to nil. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeImpl): - Update for changes to getMetalDeviceMatchingAttribute(). (rx::DisplayMtl::getMetalDeviceMatchingAttribute): - Change to return mtl::AutoObjCPtr<> to make ownership clear. - Fix leak of `deviceList`, `externalGPUs`, `integratedGPUs`, and `discreteGPUs`. - Use mtl::adoptObjCObj<>() to prevent leak of MTLCreateSystemDefaultDevice(). * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: - Fix leak of `captureDescriptor` in two different if blocks. * src/libANGLE/renderer/metal/ProgramMtl.mm: - Fix leak of `funcConstants` in early return on error path. * src/libANGLE/renderer/metal/ProvokingVertexHelper.mm: (rx::ProvokingVertexHelper::getSpecializedShader): - Fix leak of `fcValues`. * src/libANGLE/renderer/metal/SurfaceMtl.mm: - Fix leak of `captureDescriptor` in two different if blocks. * src/libANGLE/renderer/metal/mtl_common.h: (rx::mtl::WrappedObject::retainAssign): - Move statement inside #if/#endif that isn't needed for ARC. (rx::mtl::WrappedObject::unretainAssign): Add. (rx::mtl::AutoObjCPtr::AutoObjCPtr): Add. (rx::mtl::adoptObjCObj): Add. - Add a helper method to adopt an Objective-C object to eliminate the need to autorelease a +1 retained object before an mtl::AutoObjCPtr<> object wraps it. Modeled after WTF::RetainPtr<> in WebKit. * src/libANGLE/renderer/metal/mtl_state_cache.mm: (rx::mtl::RenderPipelineCache::createRenderPipelineState): (rx::mtl::ProvokingVertexComputePipelineCache::createComputePipelineState): - Use adoptObjCObj<>() to fix potential leak on the early return path since these methods return an mtl::AutoObjCPtr<>. 2021-08-16 David Kilzer "make analyze" should run clang static analyzer in deep mode Reviewed by Alexey Proskuryakov. * ANGLE.xcodeproj/project.pbxproj: - Treat "analyze" the same as "build" for "ACTION" environment variable. 2021-08-12 Kimmo Kinnunen ANGLE Cocoa compiles contents of ContextEAGL on mac https://bugs.webkit.org/show_bug.cgi?id=228987 Reviewed by Kenneth Russell. Add include guards that are consistent with other EAGL files. * src/libANGLE/renderer/gl/eagl/ContextEAGL.cpp: 2021-08-12 Kimmo Kinnunen ANGLE Cocoa compiles parts of HLSL translator, vulkan translator, libgl api, capture redundantly https://bugs.webkit.org/show_bug.cgi?id=228986 Reviewed by Kenneth Russell. Remove following from ANGLE (dynamic) target: - HLSL translator and tree ops used only by it - Vulkan translator output - libgl API validation implementation - API trace capture implementation (was only partially compiled) The features are not part of Cocoa use of ANGLE, and should not be compiled as such. Does not affect the binary size more than few kilobytes. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE-dynamic.xcconfig: 2021-08-11 Kyle Piddington Avoid infinite recursion when command buffer creation fails https://bugs.webkit.org/show_bug.cgi?id=228978 Reviewed by Kenneth Russell. In cases where the MTLCommandBuffer is not a valid metal object, we can end up in an infinite recursive loop during draw call setup. Refactor setupDraw to take no more than two attempts through the setup function. Testing: Ran WebGL tests, use case samples. Set up synthetic repro forcing bail out path, saw WebGL content fail to render instead of a web process crash. * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw): (rx::ContextMtl::setupDrawImpl): 2021-08-11 Kimmo Kinnunen Cherry-pick ANGLE: Revise WebGL's shaderSource validation https://bugs.webkit.org/show_bug.cgi?id=228951 Reviewed by Kenneth Russell. Cherry-pick ANGLE commit: b4fd46288aa65d61dc9c7140c7d1cdba3f4cdf9a From: Kenneth Russell Date: Wed, 27 Jan 2021 15:56:58 -0800 Revise WebGL's shaderSource validation. Per discussion in the WebGL working group, shaderSource no longer generates INVALID_VALUE for sources containing characters outside the ESSL character set. Compilation and/or linking is still specified to fail when illegal constructs are used. With this change, https://github.com/KhronosGroup/WebGL/pull/3206 passes with the passthrough command decoder. Revise WebGL compatibility tests to follow the new rules. * src/libANGLE/validationES2.cpp: (gl::ValidateShaderSource): * src/tests/gl_tests/WebGLCompatibilityTest.cpp: 2021-07-23 Dean Jackson 3.5 MB system-wide footprint impact due to thread-locals in libANGLE https://bugs.webkit.org/show_bug.cgi?id=228240 rdar://79504783 Reviewed by Ken Russell and Geoff Garen. Apple's dyld has a bug where thread_local variables are dirtied on process launch, causing a memory regression. Work around this temporarily in ANGLE by using pthread thread local storage. I don't expect this to be upstreamed to ANGLE unless they want it. If it isn't, this patch will have to be applied until the dyld bug is fixed. * src/libANGLE/Context.cpp: Implement some methods to get/set what was the global variable gCurrentValidContext. (gl::GetCurrentValidContextTLSIndex): (gl::GetCurrentValidContextTLS): (gl::SetCurrentValidContextTLS): (gl::Context::setContextLost): * src/libANGLE/Context.h: * src/libGLESv2/global_state.cpp: Ditto, but for gCurrentThread. (egl::GetCurrentThreadTLSIndex): (egl::GetCurrentThreadTLS): (egl::SetCurrentThreadTLS): (egl::GetCurrentThread): (egl::SetContextCurrent): * src/libGLESv2/global_state.h: (gl::GetGlobalContext): (gl::GetValidGlobalContext): 2021-07-16 Kyle Piddington Build Default Metal library offline https://bugs.webkit.org/show_bug.cgi?id=227333 This patch compiles and creates a Metal library at build time, storing the library as a compiled binary file. This library is baked into the dylib, and is loaded at context creation time. Unlike the previous version of this patch, this patch does not save or store the .metallib on disk, but rather bakes it into a binary. Fixed internal build breaks by skipping Metallib bake script. Reviewed by Kenneth Russell. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE-dynamic.xcconfig: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeShaderLibrary): * src/libANGLE/renderer/metal/mtl_utils.h: 2021-07-16 Truitt Savell Unreviewed, reverting r279980. Broke Internal Builds Reverted changeset: "Build Default Metal library offline" https://bugs.webkit.org/show_bug.cgi?id=227333 https://commits.webkit.org/r279980 2021-07-16 Kyle Piddington Build Default Metal library offline https://bugs.webkit.org/show_bug.cgi?id=227333 This patch compiles and creates a Metal library at build time, storing the library as a compiled binary file. This library is baked into the dylib, and is loaded at context creation time. Unlike the previous version of this patch, this patch does not save or store the .metallib on disk, but rather bakes it into a binary. Reviewed by Kenneth Russell. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE-dynamic.xcconfig: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeShaderLibrary): * src/libANGLE/renderer/metal/mtl_utils.h: 2021-07-15 Kyle Piddington WebGL2 demo doesn't work due to failing compilation to metal backend https://bugs.webkit.org/show_bug.cgi?id=226865 Fix translation of struct-arrays to contain the array type as well. Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp: 2021-07-13 Kyle Piddington rAF driven WebGL submits excessive amount of GPU work when frames are slow https://bugs.webkit.org/show_bug.cgi?id=227059 Reviewed by Dean Jackson. Advertise GL_ARB_sync for the Metal backend. Since GL_ARB_sync is core in OpenGL ES 3.0 and the Metal backend advertises OpenGL ES 3.0, the API must be working already. Limit in-flight WebGL frames to three frames. Do not continue preparation for display until the commands for the oldest frame have been executed by the GPU. This limits the impact slow frames have, especially in the case where the compositor skip frames and WebKit would issue a new slow frame on top of the skipped frame. An additional change ensures that Nvidia configs, which do not support MTLEvents to a level of conformance required (See http://crbug.com/1136673), continue to run. The more powerful eGPUs will not experience throttling to the same level as integrated GPUS. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeExtensions const): 2021-07-07 Kyle Piddington WebGL shader link error in iOS 15 beta: "Internal error compiling shader with Metal backend" https://bugs.webkit.org/show_bug.cgi?id=227723 The sequence operator can be used to combine statements. Our initial logic did not account for this. Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundExpressions.cpp: (sh::Separator::isStandaloneExpr): 2021-07-06 Kyle Piddington REGRESSION (r279466): [Big Sur] webgl/1.0.3/conformance & webgl/2.0.0/conformance are failing https://bugs.webkit.org/show_bug.cgi?id=227596 Provide Intel workaround for Big Sur systems. Atan and invariant have issues on older systems, and require us to disable fastmath to produce correct results. Reviewed by Kenneth Russell. * include/platform/FeaturesMtl.h: * src/compiler/translator/TranslatorMetalDirect.h: (sh::TranslatorMetalReflection::reset): * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::visitUnary): (GenMetalTraverser::visitAggregate): * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeFeatures): * src/libANGLE/renderer/metal/ProgramMtl.h: (rx::ProgramMtl::getTranslatedShaderInfo const): * src/libANGLE/renderer/metal/ProgramMtl.mm: * src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.h: * src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::GlslangGetMSL): * src/libANGLE/renderer/metal/mtl_render_utils.h: * src/libANGLE/renderer/metal/mtl_render_utils.mm: (rx::mtl::TransformFeedbackUtils::createMslXfbLibrary): (rx::mtl::TransformFeedbackUtils::getTransformFeedbackRenderPipeline): * src/libANGLE/renderer/metal/mtl_utils.h: * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::CreateShaderLibrary): 2021-07-01 Ben Nham Unreviewed, reverting r279172. Broke WebGL context construction on some devices. Reverted changeset: "rAF driven WebGL submits excessive amount of GPU work when frames are slow" https://bugs.webkit.org/show_bug.cgi?id=227059 https://commits.webkit.org/r279172 2021-07-01 Kyle Piddington BabylonJS Under water demo is slower than it should be on Intel https://bugs.webkit.org/show_bug.cgi?id=227226 Remove fastMath restriction on Intel Removing fastmath in all scenarios leads to unacceptable performance on integrated graphics Currently, webgl conformance tests and the Safari tests don't have any invariance tests that show invariance issues. deQP tests are similarly passing. In Metal-ANGLE, gl_position and gl_fragcoord are valid attributes to be marked as invariant. All others will be ignored. Reviewed by Kenneth Russell. * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitPostQualifier): * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::CreateShaderLibrary): 2021-06-30 Kimmo Kinnunen ASSERT in webgl/1.0.x/conformance/glsl/misc/uninitialized-local-global-variables.html IdGen ASSERT(*base != '_'); https://bugs.webkit.org/show_bug.cgi?id=227482 Reviewed by Kenneth Russell. Give unnamed structs normal "_" name. The original code thought it gave "ANGLE__unnamed", but in reality it gave "__unnamed". Since other constructs already create names of form "_", it is unwarranted to special case this particular case to give "_unnamed" or "ANGLE_unnamed". * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp: * src/tests/compiler_tests/MSLOutput_test.cpp: (TEST_F): 2021-06-29 Kimmo Kinnunen ANGLE Metal primitive restart range computation could index with size_t https://bugs.webkit.org/show_bug.cgi?id=227449 Reviewed by Kenneth Russell. Make the `calculateRestartRanges()` a bit simpler in order for it to be easier to understand. * src/libANGLE/renderer/metal/BufferMtl.h: (rx::IndexRange::IndexRange): Add documentation what the mtl::IndexRange is. Add constructor so that `std::vector::emplace_back()` works. * src/libANGLE/renderer/metal/BufferMtl.mm: (rx::calculateRestartRanges): Index with size_t to make it simpler to understand if the index overflows or not. Use reinterpret_cast in order to not accidentally cast away const from `mtl::BufferRef::mapReadOnly()`. Skip the non-marker elements with `continue` to avoid deep nesting. Give a name to the restart range marker value. Remove intermediate variable `value = bufferData[i]` as it is never used more than once. This simplifies the code as the do-while loop does not need to check the if condition as the loop ending condition already checks. Make the array a returned result instead of out variable. (rx::BufferMtl::getRestartIndices): 2021-06-29 Kimmo Kinnunen ANGLE Metal primitive restart range computation should not be done unless primitive restart is enabled https://bugs.webkit.org/show_bug.cgi?id=227452 Reviewed by Kenneth Russell. Primitive restart needs to scan the whole index buffer for values. This should not be done unless needed. * src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getDrawIndices): First check for primitive restart enabledness. Compute the primitive restart values after this. The algoritm should succeed when the count of primitive restart ranges is zero, and it does not do much of work. Use the restart range vector as reference, so that no copy would be done. Add spaces the if statements, comments and references. Move the else arm of the if statement with return statement to body of the function to reduce nesting. 2021-06-28 Kimmo Kinnunen iPhone 6S - iOS 15.0 - unable to retrieve WebGL2 context https://bugs.webkit.org/show_bug.cgi?id=226975 rdar://78966563 Reviewed by Kenneth Russell. Limit the OpenGL ES 3.0 contexts to iOS GPU Family 3, not 4. The limit was most likely added to guard sample_compare lod_options properties .lod and .gradient. However, these are always supported on iOS. Currently there is already ES 3.0 features implemented in ANGLE that are guarded by iOS GPU Family 3. Fixes WebGL 2.0 to work on iPhone6s and similar devices (A9, A9X). * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMaxSupportedESVersion const): 2021-06-28 Kimmo Kinnunen ANGLE Metal index buffer left mapped when building primitive restart ranges https://bugs.webkit.org/show_bug.cgi?id=227371 Reviewed by Kenneth Russell. * src/libANGLE/renderer/metal/BufferMtl.mm: (rx::calculateRestartRanges): Add unmap. 2021-06-25 Myles C. Maxfield [macOS] WebGL content is unable to use the discrete GPU https://bugs.webkit.org/show_bug.cgi?id=227408 Reviewed by Dean Jackson. There appears to be a key collision: Source/ThirdParty/ANGLE/include/platform/PlatformMethods.h:#define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482 Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h:#define EGL_POWER_PREFERENCE_ANGLE 0x3482 Both these keys seem to be accepted by EGL_GetPlatformDisplayEXT(). This patch just changes the value of one of them to a value I picked out of a hat, just so they don't conflict. We should work with upstream to either: A) Find a better solution (maybe disambiguate these values based on which function is accepting them), or B) Make a robust way to make sure keys don't collide in the future. * include/platform/PlatformMethods.h: 2021-06-24 John Cunningham [ANGLE Metal] - Set barriers on transform feedback buffers only up to the in use buffer count https://bugs.webkit.org/show_bug.cgi?id=227272 Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::onEndTransformFeedback): 2021-06-23 Kyle Piddington Fix incorrect indexing / out of bounds access in getRestartIndices https://bugs.webkit.org/show_bug.cgi?id=227274 In the case where a restart index is present in the last element of an index array, we can accidently access out of bounds. Fix this by checking boundaries, and fixing other indexing errors Tests: Ran deqp/functional/gles3/primitiverestart suite. Passed 8 tests. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/BufferMtl.mm: (rx::calculateRestartRanges): 2021-06-23 Kyle Piddington Guard against compile failures of the default libraries https://bugs.webkit.org/show_bug.cgi?id=227239 Under certain events (High memory usage), the MTLCompilerService can fail when creating the default library. Guard against nil pipelines by failing GL calls instead, if this happens. While this can create rendering artifacts due to missing blits / conversions, this can at least avoid crashing the process. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/mtl_render_utils.h: * src/libANGLE/renderer/metal/mtl_render_utils.mm: (rx::mtl::ClearUtils::setupClearWithDraw): (rx::mtl::ClearUtils::clearWithDraw): (rx::mtl::ColorBlitUtils::setupColorBlitWithDraw): (rx::mtl::ColorBlitUtils::blitColorWithDraw): (rx::mtl::DepthStencilBlitUtils::setupDepthStencilBlitWithDraw): (rx::mtl::DepthStencilBlitUtils::blitDepthStencilWithDraw): (rx::mtl::VertexFormatConversionUtils::setupCommonConvertVertexFormatToFloat): (rx::mtl::VertexFormatConversionUtils::expandVertexFormatComponentsVS): (rx::mtl::VertexFormatConversionUtils::setupCommonExpandVertexFormatComponents): 2021-06-23 Kimmo Kinnunen rAF driven WebGL submits excessive amount of GPU work when frames are slow https://bugs.webkit.org/show_bug.cgi?id=227059 Reviewed by Kenneth Russell. Advertise GL_ARB_sync for the Metal backend. Since GL_ARB_sync is core in OpenGL ES 3.0 and the Metal backend advertises OpenGL ES 3.0, the API must be working already. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeExtensions const): 2021-06-22 Dean Jackson [ANGLE] Support importing external MTLTextures https://bugs.webkit.org/show_bug.cgi?id=226690 Reviewed by Tim Horton. Support MTLTextures as GL textures. Merge https://chromium-review.googlesource.com/c/angle/angle/+/2820178 * ANGLE.xcodeproj/project.pbxproj: * extensions/EGL_ANGLE_metal_texture_client_buffer.txt: Added. * include/EGL/eglext_angle.h: * src/common/utilities.cpp: (egl::IsExternalImageTarget): * src/libANGLE/Caps.cpp: (egl::DisplayExtensions::getStrings const): * src/libANGLE/Caps.h: * src/libANGLE/renderer/metal/BUILD.gn: * src/libANGLE/renderer/metal/DisplayMtl.h: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::createImage): (rx::DisplayMtl::createExternalImageSibling): (rx::DisplayMtl::generateExtensions const): (rx::DisplayMtl::validateImageClientBuffer const): (rx::DisplayMtl::initializeExtensions const): * src/libANGLE/renderer/metal/ImageMtl.h: Added. (rx::TextureImageSiblingMtl::getTexture const): (rx::TextureImageSiblingMtl::getFormatMtl const): (rx::ImageMtl::getTexture const): (rx::ImageMtl::getImageTextureType const): (rx::ImageMtl::getImageLevel const): (rx::ImageMtl::getImageLayer const): * src/libANGLE/renderer/metal/ImageMtl.mm: Added. (rx::TextureImageSiblingMtl::TextureImageSiblingMtl): (rx::TextureImageSiblingMtl::~TextureImageSiblingMtl): (rx::TextureImageSiblingMtl::ValidateClientBuffer): (rx::TextureImageSiblingMtl::initialize): (rx::TextureImageSiblingMtl::initImpl): (rx::TextureImageSiblingMtl::onDestroy): (rx::TextureImageSiblingMtl::getFormat const): (rx::TextureImageSiblingMtl::isRenderable const): (rx::TextureImageSiblingMtl::isTexturable const): (rx::TextureImageSiblingMtl::getSize const): (rx::TextureImageSiblingMtl::getSamples const): (rx::ImageMtl::ImageMtl): (rx::ImageMtl::~ImageMtl): (rx::ImageMtl::onDestroy): (rx::ImageMtl::initialize): (rx::ImageMtl::orphan): * src/libANGLE/renderer/metal/RenderBufferMtl.mm: (rx::RenderbufferMtl::setStorageEGLImageTarget): * src/libANGLE/renderer/metal/TextureMtl.mm: (rx::TextureMtl::setEGLImageTarget): * src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_mac_case.gen_format_assign_code): (gen_image_mtl_to_angle_switch_string): (main): * src/libANGLE/renderer/metal/mtl_common.h: * src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): * src/libANGLE/renderer/metal/mtl_format_utils.h: * src/libANGLE/validationEGL.cpp: (egl::ValidateCreateImage): * src/tests/BUILD.gn: * src/tests/gl_tests/ImageTest.cpp: (angle::TEST_P): * src/tests/gl_tests/ImageTestMetal.mm: Added. (angle::ScopeMetalTextureRef::ScopeMetalTextureRef): (angle::ScopeMetalTextureRef::~ScopeMetalTextureRef): (angle::ScopeMetalTextureRef::get const): (angle::ScopeMetalTextureRef::operator id const): (angle::ScopeMetalTextureRef::operator=): (angle::ScopeMetalTextureRef::release): (angle::CreateMetalTexture2D): (angle::ImageTestMetal::ImageTestMetal): (angle::ImageTestMetal::getMtlDevice): (angle::ImageTestMetal::createMtlTexture2D): (angle::ImageTestMetal::verifyResultsTexture): (angle::ImageTestMetal::verifyResults2D): (angle::ImageTestMetal::reinterpretHelper): (angle::ImageTestMetal::hasImageNativeMetalTextureExt const): (angle::ImageTestMetal::hasOESExt const): (angle::ImageTestMetal::hasBaseExt const): (angle::ImageTestMetal::sourceMetalTarget2D_helper): (angle::TEST_P): 2021-06-17 Kyle Piddington [Metal ANGLE] Shaders with reserved metal keywords do not translate, nor do shaders with struct and variable names that are the same except prefixed by an underscore https://bugs.webkit.org/show_bug.cgi?id=226660 Fix keyword translation problem by correcting symbol space. This avoids renaming structs unnecessarily Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/RewriteKeywords.cpp: (sh::Rewriter::createRenamed): 2021-06-16 Kimmo Kinnunen ANGLE Metal gl sync objects do not work in case of listener being needed https://bugs.webkit.org/show_bug.cgi?id=227024 Reviewed by Per Arne Vollan. Add an assert to notice when MTLSharedEventListener instantiation fails. Without this, the fence implementation would not signal the completion until the timeout would pass. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getOrCreateSharedEventListener): 2021-06-16 Kimmo Kinnunen ANGLE Metal AutoObjCPtr == nullptr comparison is inverted https://bugs.webkit.org/show_bug.cgi?id=227026 Reviewed by Anders Carlsson. Make it more correct and add != nullptr variant for consistency. Use std::nullptr_t instead of const std::nullptr_t & in all functions for consistency. * src/libANGLE/renderer/metal/mtl_common.h: (rx::mtl::AutoObjCPtr::operator== const): (rx::mtl::AutoObjCPtr::operator!= const): 2021-06-15 Kyle Piddington Tensorflow.js Broken in Safari 15 https://bugs.webkit.org/show_bug.cgi?id=226953 Tensorflow shaders use a 'NAN' uniform. This is a reserved keyword in metal. Add NAN to the reserved list. 'inf' constants need to be replaced with INFINITY, much like nan constants need to be replaced with NAN Reviewed by Kenneth Russell. * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::GetMslKeywords): 2021-06-15 Alex Christensen Fix typo in r276318 https://bugs.webkit.org/show_bug.cgi?id=227041 Reviewed by Chris Dumez. @ uses the string @(DYLIB_INSTALL_NAME_BASE) $ uses the value of the environment variable. This turns out to be an important difference. * Configurations/ANGLE-dynamic.xcconfig: 2021-06-11 Eleni Maria Stea ANGLE EGL and GLES libraries should link with lib dl. https://bugs.webkit.org/show_bug.cgi?id=226920 Reviewed by Kenneth Russell. GLES and EGL that are generated from ANGLE should link with libdl because they use dlsym and dlopen. Also, with the updated CMakeLists.txt we can safely link with libEGL when USE_ANGLE_WEBGL is set because the symbols of EGL are now found. * CMakeLists.txt: 2021-06-10 Don Olmstead [CMake] Make ANGLE library types configurable https://bugs.webkit.org/show_bug.cgi?id=226840 Reviewed by Kenneth Russell. The type for ANGLE's libraries was being hard coded. Now the libraries can be set by specifying the _LIBRARY_TYPE which defaults to STATIC. Windows platforms override this and use SHARED libraries. Additionally make compiling ANGLE's EGL library contingent on USE_ANGLE_EGL being enabled since its not used otherwise. * CMakeLists.txt: * PlatformFTW.cmake: * PlatformWin.cmake: 2021-06-02 Kyle Piddington Add 'mix' override with bool-vectors to MSL translator https://bugs.webkit.org/show_bug.cgi?id=226366 Reviewed by Dean Jackson. Add in 'mix' overrides, and logic for selecting mix with bool when necessary. * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GetOperatorString): (GenMetalTraverser::visitAggregate): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: 2021-06-01 Kyle Piddington [Metal ANGLE] transformFeedback samples on webglsamples.org do not render correctly https://bugs.webkit.org/show_bug.cgi?id=226285 Reviewed by Dean Jackson. Metal ANGLE does not render these samples correctly, for a number of reasons. For transform_feedback_interleaved and seperated, We need to start a new renderEncoder to get the results from the transform feedback. for transform_feedback-seperated_2, we need to invalidate the current render pass descriptor in order to switch to the rasterizer-enabled version of the shader. Testing: Ran all transform feedback tests from deqp suite to ensure no regressions are present. * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::drawTriFanArraysWithBaseVertex): (rx::ContextMtl::drawArraysImpl): (rx::ContextMtl::drawTriFanElements): (rx::ContextMtl::prepareForTransformFeedbackPassTwo): (rx::ContextMtl::drawLineLoopElements): (rx::ContextMtl::drawElementsImpl): (rx::ContextMtl::onEndTransformFeedback): * src/libANGLE/renderer/metal/TransformFeedbackMtl.mm: (rx::TransformFeedbackMtl::end): 2021-06-01 Kimmo Kinnunen ANGLE Metal translator pre-rotation code is unused and it asserts when used https://bugs.webkit.org/show_bug.cgi?id=226262 Reviewed by Dean Jackson. Remove the pre-rotation code. It is Android specific and most likely it is useful only when ANGLE is used as the drawing mechanism for the primary app window picture. Thus most likely it is not useful in WebKit on Cocoa platforms where the window server does the compositing. * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl): * src/compiler/translator/TranslatorMetalDirect.h: * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::handleDirtyDriverUniforms): 2021-05-31 Kimmo Kinnunen Cherry-pick ANGLE: Add array bounds checks for WebGL shaders https://bugs.webkit.org/show_bug.cgi?id=226397 Reviewed by Dean Jackson. Cherry-pick ANGLE commit b0d39ba2aba218402ff2f32f6e16f18cf4975ff4 At the moment does not affect any WebKit client. Makes the code consistent with OpenGL. Makes it easier to understand same change in Metal backend. Upstream description: Add array bounds checks for WebGL shaders WebGL shaders may contain OOB array accesses which in turn cause undefined behavior, which may result in security issues. This was detected as an UNKNOWN READ by UBSAN while testing with SwANGLE. * src/libANGLE/renderer/vulkan/ShaderVk.cpp: (rx::ShaderVk::compile): 2021-05-28 Kimmo Kinnunen ANGLE Metal translator should always collect variables https://bugs.webkit.org/show_bug.cgi?id=226261 Reviewed by Dean Jackson. Always collect the variables when translating GLSL to Metal. This way tests that invoke translation without SH_VARIABLES still work. * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl): * src/compiler/translator/TranslatorMetalDirect.h: 2021-05-27 Kimmo Kinnunen ANGLE could be compiled with "aggressive uninitialised variable" setting https://bugs.webkit.org/show_bug.cgi?id=226260 Reviewed by Alexey Proskuryakov. Turn on compiler flag to warn about uninitialized variables that might be conditionally uninitialized. This is the same flag as upstream ANGLE uses. Fix a spurious warning produced by this flag. This helps in scenarios where custom targets compile ANGLE sources and this flag set, such as tests. * Configurations/Base.xcconfig: * src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: 2021-05-27 Kimmo Kinnunen Cherry-pick ANGLE: D3D11: Skip blits if there is no intersection of dest areas https://bugs.webkit.org/show_bug.cgi?id=225190 Reviewed by David Kilzer. Cherry-pick ANGLE commit b574643ef28c92fcea5122dd7a72acb42a514eed Fixes a security issue on D3D11. Potential a correctness issue on some OpenGL drivers. No effect on Metal, but the nodiscard part is still useful. Upstream description: D3D11: Skip blits if there is no intersection of dest areas Blit11 would clip the destination rectangle with the destination size but ignore the result. gl::ClipRectangle returns false when the rectangles do not intersect at all, indicating the blit can be skipped. This could lead to an out-of-bounds write to the GPU memory for the destination texture. Mark ClipRectangle as nodiscard to prevent future issues. * src/libANGLE/angletypes.h: * src/libANGLE/renderer/d3d/d3d11/Blit11.cpp: * src/libANGLE/renderer/gl/FramebufferGL.cpp: (rx::FramebufferGL::clipSrcRegion): * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::updateScissor): * src/libANGLE/renderer/vulkan/ContextVk.cpp: (rx::ContextVk::updateScissor): * src/tests/gl_tests/BlitFramebufferANGLETest.cpp: (TEST_P): 2021-05-26 Don Olmstead [CMake] Support USE_ANGLE_EGL on additional platforms https://bugs.webkit.org/show_bug.cgi?id=224888 Reviewed by Ken Russell. Support ANGLE using the OpenGL backend for GTK. Support ANGLE using Metal backend for Mac. Add the generated sources for these two backends. Clean up the CMake and introduce additional targets. * CMakeLists.txt: * Compiler.cmake: * GL.cmake: Added. * Metal.cmake: Added. * PlatformFTW.cmake: * PlatformGTK.cmake: * PlatformMac.cmake: * PlatformWin.cmake: 2021-05-20 Kyle Piddington [Metal ANGLE] Handle NAN constant folding correctly https://bugs.webkit.org/show_bug.cgi?id=226052 NAN values (0.0f/0.0f) were being handled incorrectly. MSL was being emitted as lowercase 'nanf', instead of NAN Check for an unlikely NAN case, and emit correct MSL Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitSingleConstant): 2021-05-20 Kyle Piddington Red flashes zooming on Google Maps when using external monitor on multi-gpu systems https://bugs.webkit.org/show_bug.cgi?id=225956 Reviewed by Dean Jackson. IOSurface presentation swaps require that a command buffer is queued for execution before swapping. Otherwise, we're liable to drop frames, or present old IOSurface buffers. Ensure work flushed via glFlush completes before presenation by waiting for it to enqueue before swapping a surface. * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::flush): * src/libANGLE/renderer/metal/mtl_command_buffer.h: * src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::CommandBuffer::waitUntilScheduled): (rx::mtl::CommandBuffer::commitImpl): 2021-05-19 Kyle Piddington ASSERT(!toType.isArray()) failure in sh::CoerceSimple due to vector array dereference https://bugs.webkit.org/show_bug.cgi?id=225864 Reviewed by Dean Jackson. Fixed program translation error, additional issues with transform feedback shaders * src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp: * src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::reset): 2021-05-19 Kyle Piddington [ANGLE Metal] Support Provoking Vertex Emulation, Pass Fragment Output test suite. https://bugs.webkit.org/show_bug.cgi?id=225842 Reviewed by Dean Jackson. Add support for provoking vertex emulation. Metal only supports using the first vertex of a primitive as a provoking vertex. To adapt, rewrite the index buffer on the fly when provoking vertex support is required. This method does not rewrite any primitives that would be culled by primitive restart, such as simple triangles and lines. Triangle and line strips are re-written to line and triangle buffers. Tri fans and line loops are not supported for this rewrite as of this patch. * ANGLE.xcodeproj/project.pbxproj: * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::ContextMtl): (rx::ContextMtl::initialize): (rx::ContextMtl::onDestroy): (rx::ContextMtl::drawElementsImpl): (rx::ContextMtl::flushCommandBufer): (rx::ContextMtl::present): (rx::ContextMtl::ensureCommandBufferReady): (rx::ContextMtl::requiresIndexRewrite): * src/libANGLE/renderer/metal/ProgramMtl.h: * src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::ProgramMtl): (rx::ProgramMtl::programHasFlatAttributes const): (rx::ProgramMtl::linkImpl): * src/libANGLE/renderer/metal/ProvokingVertexHelper.h: Added. * src/libANGLE/renderer/metal/ProvokingVertexHelper.mm: Added. (rx::primCountForIndexCount): (rx::ProvokingVertexHelper::ProvokingVertexHelper): (rx::ProvokingVertexHelper::onDestroy): (rx::ProvokingVertexHelper::commitPreconditionCommandBuffer): (rx::ProvokingVertexHelper::getComputeCommandEncoder): (rx::ProvokingVertexHelper::ensureCommandBufferReady): (rx::buildIndexBufferKey): (rx::ProvokingVertexHelper::getSpecializedShader): (rx::ProvokingVertexHelper::hasSpecializedShader): (rx::ProvokingVertexHelper::prepareCommandEncoderForDescriptor): (rx::ProvokingVertexHelper::preconditionIndexBuffer): * src/libANGLE/renderer/metal/mtl_state_cache.h: (std::hash::operator() const): * src/libANGLE/renderer/metal/mtl_state_cache.mm: (rx::mtl::ProvokingVertexComputePipelineDesc::ProvokingVertexComputePipelineDesc): (rx::mtl::ProvokingVertexComputePipelineDesc::operator=): (rx::mtl::ProvokingVertexComputePipelineDesc::operator== const): (rx::mtl::ProvokingVertexComputePipelineDesc::operator!= const): (rx::mtl::ProvokingVertexComputePipelineDesc::hash const): (rx::mtl::ProvokingVertexComputePipelineCache::ProvokingVertexComputePipelineCache): (rx::mtl::ProvokingVertexComputePipelineCache::setComputeShader): (rx::mtl::ProvokingVertexComputePipelineCache::clearPipelineStates): (rx::mtl::ProvokingVertexComputePipelineCache::clear): (rx::mtl::ProvokingVertexComputePipelineCache::getComputePipelineState): (rx::mtl::ProvokingVertexComputePipelineCache::insertComputePipelineState): (rx::mtl::ProvokingVertexComputePipelineCache::recreatePipelineStates): (rx::mtl::ProvokingVertexComputePipelineCache::createComputePipelineState): (rx::mtl::ProvokingVertexComputePipelineCache::~ProvokingVertexComputePipelineCache): * src/libANGLE/renderer/metal/mtl_utils.h: * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::CreateMslShader): * src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc: * src/libANGLE/renderer/metal/shaders/rewrite_indices.metal: Added. * src/libANGLE/renderer/metal/shaders/rewrite_indices_shared.h: Added. 2021-05-18 Alex Christensen Stop compiling ANGLE metal files twice https://bugs.webkit.org/show_bug.cgi?id=225919 Reviewed by Dean Jackson. ANGLE currently generates an unused default.metallib that conflicts with other default.metallibs being built. Since it is unused, remove it. What we currently do is put all the source bytes into gDefaultMetallibSrc and compile it at runtime. This could be optimized to do it at compile time and use newLibraryWithData instead of newLibraryWithSource, but that should be done separately. * ANGLE.xcodeproj/project.pbxproj: 2021-05-12 Kyle Piddington [Angle METAL] Remove thread qualifiers and pass-by-reference qualifiers for cast functions https://bugs.webkit.org/show_bug.cgi?id=225702 Cast functions fail to compile when casting from user uniforms. Update cast functions to remove pass-by-reference qualifiers. Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: 2021-05-08 Basuke Suzuki [WinCairo] Remove linker warning on ANGLE https://bugs.webkit.org/show_bug.cgi?id=225501 Reviewed by Darin Adler. libANGLE is statically linked to libGLESv2.dll so that __declspec(dllimport) is not required here. * include/platform/PlatformMethods.h: 2021-05-06 Kyle Piddington [Metal ANGLE] Only clear dirty state bits after all state has been successfully set https://bugs.webkit.org/show_bug.cgi?id=225468 When running in release, if any ANGLE calls fail, we eventually return to this part of the code. We can be left with an incomplete state, where we have an incomplete program or attachment, but a 'clean' state. This can lead to errors such as setting nil render pipeline states, leading to crashes. To mitigate this, hold off on setting state bits until we've completly set up a program. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw): * src/libANGLE/renderer/metal/ProgramMtl.mm: 2021-05-03 Kyle Piddington [Metal ANGLE]: Fix conversions tests and remove failing test expectations https://bugs.webkit.org/show_bug.cgi?id=225261 bool conversion workaround was being applied to all shaders. Correct shader translation to generate better conversion code on platforms that don't need a workaround. Conversions for basic types like vec2, ivec2, uvec2 were only using the first components when workaround was active. Correct swizzle logic to get all components when doing a conversion. Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp: * src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp: (sh::CoerceSimple): * src/compiler/translator/TranslatorMetalDirect/AstHelpers.h: 2021-04-30 Kyle Piddington [Metal ANGLE]: fix webgl/2.0.0/deqp/functional/gles3/negativebufferapi https://bugs.webkit.org/show_bug.cgi?id=225222 Arbitrary alignments are not allowed in Metal. Update UBO alignment to a platform-dependant offset to match specifications. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::ensureCapsInitialized const): 2021-04-29 Kyle Piddington Metal-ANGLE: Shared memory texture tests failing in iOS Simulator https://bugs.webkit.org/show_bug.cgi?id=222685 Using replaceRegion to perform texture uploads on simulator causes issues on some workflows. As a workaround, use a GPU-driven upload instead of a CPU driven upload. Reviewed by Kenneth Russell. * src/libANGLE/renderer/metal/TextureMtl.mm: 2021-04-29 Kyle Piddington [ANGLE-Metal] Fix 17 textureshadow tests https://bugs.webkit.org/show_bug.cgi?id=224965 Depth24Stencil8 copies were being incorrectly managed when dealing with D24S8 emulation. Fix conversion functions Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/mtl_format_utils.h: * src/libANGLE/renderer/metal/mtl_format_utils.mm: (rx::mtl::priv::OffsetDataPointer): (rx::mtl::LoadS8D24S8ToD32FX24S8): (rx::mtl::DEPTH24_STENCIL8_to_D32_FLOAT_X24S8_UINT): (rx::mtl::GetLoadFunctionsMap): (rx::mtl::FormatTable::initialize): (): Deleted. 2021-04-28 Alex Christensen Stop building libANGLE.a https://bugs.webkit.org/show_bug.cgi?id=225162 Reviewed by Alexey Proskuryakov. Now that everyone's linking against the dylib, we don't need to build the static library any more. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE-dynamic.xcconfig: * src/empty.cpp: Removed. 2021-04-28 Kimmo Kinnunen ANGLE should be compiled with thread-safe statics https://bugs.webkit.org/show_bug.cgi?id=224854 Reviewed by Kenneth Russell. Compile ANGLE with normal thread-safe c++ local statics. No known threading failures. Based on ad-hoc risk vs benefit evaluation of today and after future merges, it appears better to err in the side of caution. * Configurations/Base.xcconfig: 2021-04-26 Alex Christensen Update Mac-specific CMake files https://bugs.webkit.org/show_bug.cgi?id=225064 Rubber-stamped by Tim Horton. * PlatformMac.cmake: 2021-04-25 Kyle Piddington [Metal ANGLE] support primitive restart behavior with simple data types https://bugs.webkit.org/show_bug.cgi?id=225011 Primitive restart behavior for simple data types is not defined in Metal. Add a pre-draw pass to create a set of restart indices, rather than re-write the index buffer. This pass avoids storing more copies of the index buffer: instead, we cache the location of restart indices, and use them to build draw lists. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/BufferMtl.h: * src/libANGLE/renderer/metal/BufferMtl.mm: (rx::IndexConversionBufferMtl::IndexConversionBufferMtl): (rx::BufferMtl::markConversionBuffersDirty): (rx::calculateRestartRanges): (rx::BufferMtl::getRestartIndices): * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::drawLineLoopElements): (rx::ContextMtl::drawElementsImpl): (rx::ContextMtl::drawElementsSimpleTypesPrimitiveRestart): Deleted. * src/libANGLE/renderer/metal/VertexArrayMtl.h: * src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getIndexBuffer): (rx::VertexArrayMtl::getDrawIndices): (rx::VertexArrayMtl::convertIndexBuffer): (rx::VertexArrayMtl::streamIndexBufferFromClient): 2021-04-25 John Cunningham [Metal ANGLE] Temporarily remove AST validation even for debug builds https://bugs.webkit.org/show_bug.cgi?id=224991 rdar://76299178 Reviewed by Kenneth Russell. * src/libANGLE/renderer/metal/ShaderMtl.mm: (rx::ShaderMtl::compileImplMtl): 2021-04-25 Kyle Piddington [Metal ANGLE] Select proper IOSurface backing format for WebGL environment https://bugs.webkit.org/show_bug.cgi?id=224948 Depending on the architecture, WebCore expects different IOSurface texture targets for the main buffer. When running catalyst on Arm64 devices, Metal-ANGLE needs to select the TEXTURE_2D texture target for our IOSurface/Pbuffer bind point, rather than TEXTURE_RECTANGLE. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/DisplayMtl.h: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::needsEAGLOnMac): (rx::DisplayMtl::EGLDrawingBufferTextureTarget): (rx::DisplayMtl::generateConfigs): 2021-04-23 Truitt Savell Unreviewed, reverting r276190. broke a test internally. Reverted changeset: "Metal-ANGLE: Shared memory texture tests failing in iOS Simulator" https://bugs.webkit.org/show_bug.cgi?id=222685 https://commits.webkit.org/r276190 2021-04-22 Lauro Moura [CMake][ANGLE] Silence -Wreturn-type for gcc and clang https://bugs.webkit.org/show_bug.cgi?id=224949 Reviewed by Don Olmstead. Avoid "control reaches end of non-void function" in sh::TIntermRebuild::traverseChildren(...) * CMakeLists.txt: 2021-04-22 Philippe Normand Unreviewed, WPE build fix after r276390 Fix namespacing issues in nullptr_t invocations. * src/compiler/translator/tree_util/IntermRebuild.cpp: (sh::TIntermRebuild::BaseResult::BaseResult): (sh::PreResult::PreResult): (sh::PostResult::PostResult): * src/compiler/translator/tree_util/IntermRebuild.h: 2021-04-21 Don Olmstead [Python 3] Update gni-to-cmake.py https://bugs.webkit.org/show_bug.cgi?id=224880 Reviewed by Kenneth Russell. Update gni-to-cmake.py to run on Python 3. Added ArgumentParser support to be able to run the script on Windows since the script assumed it would be called through a UNIX style shell. Ran the .gni files through the converter to verify output. It appears that the Compiler.cmake file wasn't generated in the last update to ANGLE so it has many changes. * Compiler.cmake: * D3D.cmake: * gni-to-cmake.py: 2021-04-21 Don Olmstead [CMake] Add OpenGLES2 targets https://bugs.webkit.org/show_bug.cgi?id=224786 Reviewed by Adrian Perez de Castro. Add an ALIAS target mapping ANGLE's GLESv2 target to OpenGL::GLES if the target is not already present. This is the case for Windows which uses ANGLE as its sole OpenGL ES implementation. * CMakeLists.txt: 2021-04-20 Alex Christensen MacCatalyst ANGLE is linked with @loader_path/../../../libANGLE-shared.dylib https://bugs.webkit.org/show_bug.cgi?id=224602 Reviewed by Alexey Proskuryakov. * Configurations/ANGLE-dynamic.xcconfig: 2021-04-19 Alex Christensen Build ANGLE dylib into WK_OVERRIDE_FRAMEWORKS_DIR in builds that use it https://bugs.webkit.org/show_bug.cgi?id=224785 Reviewed by Alexey Proskuryakov. * Configurations/ANGLE-dynamic.xcconfig: 2021-04-16 Kyle Piddington Metal-ANGLE: Shared memory texture tests failing in iOS Simulator https://bugs.webkit.org/show_bug.cgi?id=222685 Reviewed by Dean Jackson. Simulator-only path drives filling textures via Blit encoders instead of mapped memory. This workaround fixes dropped texture writes when using replaceRegion * src/libANGLE/renderer/metal/TextureMtl.mm: * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::InitializeTextureContents): 2021-04-15 Alex Christensen Use kIOMainPortDefault where available https://bugs.webkit.org/show_bug.cgi?id=224632 Reviewed by Alexey Proskuryakov. In ANGLE we don't include WTF headers, so we can't use the HAVE macro like we do elsewhere in WebKit, but this is pretty close. * src/gpu_info_util/SystemInfo_macos.mm: (angle::GetVendorIDFromMetalDeviceRegistryID): 2021-04-15 Alex Christensen Add deprecation macros https://bugs.webkit.org/show_bug.cgi?id=224624 * src/gpu_info_util/SystemInfo_macos.mm: (angle::GetVendorIDFromMetalDeviceRegistryID): 2021-04-12 Dean Jackson REGRESSION (Metal ANGLE): [Catalina] 6 consistent WebGL failures / timeouts https://bugs.webkit.org/show_bug.cgi?id=224016 Patch by John Cunningham Reviewed by Dean Jackson. Implement a workaround for Intel GPUs where we explicitly type cast floating point values to booleans. This is only needed for Catalina systems. * include/GLSLANG/ShaderLang.h: * include/platform/FeaturesMtl.h: * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl): * src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp: (sh::Rewriter::Rewriter): (sh::AddExplicitTypeCasts): * src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.h: * src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp: (sh::SubVector): (sh::CoerceSimple): * src/compiler/translator/TranslatorMetalDirect/AstHelpers.h: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeFeatures): * src/libANGLE/renderer/metal/ShaderMtl.mm: (rx::ShaderMtl::compile): 2021-04-12 Kyle Piddington Crash in webgl/2.0.y/conformance/glsl/misc/uninitialized-local-global-variables.html ANGLE+METAL https://bugs.webkit.org/show_bug.cgi?id=223923 Anonymous structs require a name in MSL, add a default name ANGLE__unnamed$id to any structs. Also add a unit test to ensure this works. Reviewed by Kenneth Russell. * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl): * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp: (sh::Separator::Separator): (sh::SeparateCompoundStructDeclarations): * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.h: * src/tests/BUILD.gn: * src/tests/angle_unittests.gni: * src/tests/compiler_tests/MSLOutput_Test.cpp: 2021-04-08 Kyle Piddington [Metal-ANGLE] Support GPU power preferences, select low-power GPU by default. Respond to GPU power preference flags, expose extension, and avoid creating a high-powered GPU by default. https://bugs.webkit.org/show_bug.cgi?id=224337 Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/DisplayMtl.h: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeImpl): (rx::DisplayMtl::getMetalDeviceMatchingAttribute): (rx::DisplayMtl::generateExtensions const): 2021-04-07 Kyle Piddington Crash in conformance2/textures/misc/compressed-tex-image.html with ANGLE+METAL Handle uploading a compressed texture with a non-aligned offset. Path requires that we still fill the entire level of a compressed texture. https://bugs.webkit.org/show_bug.cgi?id=223925 Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/TextureMtl.mm: (rx::TextureMtl::convertAndSetPerSliceSubImage): 2021-04-07 John Cunningham [METAL ANGLE] Interface block declerations need to have children marked as struct accesses. Add implicit backing textures for multisample render targets https://bugs.webkit.org/show_bug.cgi?id=224265 Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp: * src/libANGLE/renderer/metal/FrameBufferMtl.h: * src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::setLoadStoreActionOnRenderPassFirstStart): (rx::FramebufferMtl::onStartedDrawingToFrameBuffer): * src/libANGLE/renderer/metal/RenderBufferMtl.mm: (rx::RenderbufferMtl::setStorageImpl): 2021-04-05 Alex Christensen Resurrect Mac CMake build https://bugs.webkit.org/show_bug.cgi?id=224084 Reviewed by Tim Horton. * PlatformMac.cmake: Added. 2021-04-05 John Cunningham [METAL ANGLE] Stencil only formats being used as the depth attachment. https://bugs.webkit.org/show_bug.cgi?id=224183 Reviewed by Jon Lee. * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: * src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp: (sh::Rewriter::argAlreadyProcessed): * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw): * src/libANGLE/renderer/metal/mtl_command_buffer.h: * src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::RenderCommandEncoder::reset): (rx::mtl::RenderCommandEncoder::setRenderPipelineState): (rx::mtl::RenderCommandEncoder::draw): (rx::mtl::RenderCommandEncoder::drawInstanced): (rx::mtl::RenderCommandEncoder::drawIndexed): (rx::mtl::RenderCommandEncoder::drawIndexedInstanced): (rx::mtl::RenderCommandEncoder::drawIndexedInstancedBaseVertex): * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::InitializeDepthStencilTextureContentsGPU): 2021-03-30 Kyle Piddington Enable sample_compare operations in Metal ANGLE Sample_compare operations, and shadow sampling was accidently switched off when initially setting up ANGLE_Metal. Enabling shadow sampling fixes most of the webgl/2.0.0/deqp/functional/gles3/textureshadow/ test suite, which is currently failing. https://bugs.webkit.org/show_bug.cgi?id=223833 Reviewed by Jon Lee. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeFeatures): 2021-03-26 Jessie Berlin Update the BEFORE/SINCE, SYSTEM_VERSION_PREFIX, and MACOSX_DEPLOYMENT_TARGET flags https://bugs.webkit.org/show_bug.cgi?id=223779 Reviewed by Tim Horton. * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebKitTargetConditionals.xcconfig: 2021-03-25 Kyle Piddington ANGLE Metal crash ASAN webgl/1.0.3/conformance/misc/object-deletion-behaviour.html https://bugs.webkit.org/show_bug.cgi?id=223739 Reviewed by Dean Jackson. Previously, ANGLE would try to read color attachments off of the cached render targets. However, since validation happens before state sync, the cached render targets may be out of date. For non-surface backed render targets, we instead get a fresh copy of the render target when determening the native pixel format. * src/libANGLE/renderer/metal/FrameBufferMtl.h: * src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::getImplementationColorReadFormat const): (rx::FramebufferMtl::getColorReadRenderTargetNoCache const): 2021-03-25 Kyle Piddington [Metal ANGLE] Add CPU mipmap generation for workaround on Intel devices. https://bugs.webkit.org/show_bug.cgi?id=223778 Reviewed by Dean Jackson. Mipmap generation on Intel does not reliably work for textures with width less than four. To reliably pass webGL conformance, we need to switch to CPU mipmap generation when generating mipmaps in this specific circumstance. This patch fixes the following four tests on Intel webgl/1.0.3/conformance/limits/gl-max-texture-dimensions.html webgl/1.0.3/conformance/textures/texture-size.html webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html webgl/2.0.0/conformance/textures/misc/texture-size.html * include/platform/Feature.h: (angle::FeatureCategoryToString): * include/platform/FeaturesMtl.h: * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeFeatures): * src/libANGLE/renderer/metal/TextureMtl.mm: (rx::TextureMtl::generateMipmap): 2021-03-25 Jessie Berlin Remove 10.13 DEPLOYMENT_TARGETs and SYSTEM_VERSION_PREFIXs https://bugs.webkit.org/show_bug.cgi?id=223765 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: 2021-03-24 Kyle Piddington Metal ANGLE non-blockers: Fix webgl/1.0.3/conformance/uniforms/uniform-default-values.html, Stencil debug layer assertions https://bugs.webkit.org/show_bug.cgi?id=223667 https://bugs.webkit.org/show_bug.cgi?id=223667 On Release, uniformDefaultValues was resetting program memory either early, or oddly. Since program reflection should be constant per Shader anyway, drop the 'reset' after assigning reflection data. In addition, clamp stencil rectangle to always be within framebuffer bounds. Code taken from upstream ANGLE. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::linkImplDirect): * src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::RenderCommandEncoder::initAttachmentWriteDependencyAndScissorRect): (rx::mtl::RenderCommandEncoder::restart): (rx::mtl::RenderCommandEncoder::setScissorRect): * src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::TranslatedShaderInfo::reset): (rx::mtl::GlslangGetMSL): 2021-03-24 Kyle Piddington Metal ANGLE crashes LayoutTests/inspector/canvas/updateShader-webgl.html Rather than rely on an instance variable in a C++ class, just query the dictionary constant when needed. https://bugs.webkit.org/show_bug.cgi?id=223695 Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/ProgramMtl.h: * src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::ProgramMtl): (rx::ProgramMtl::linkImplSpirv): (rx::ProgramMtl::linkImplDirect): (rx::ProgramMtl::linkTranslatedShaders): 2021-03-23 Kyle Piddington ANGLE Metal fixes for program generation bugs https://bugs.webkit.org/show_bug.cgi?id=223627 Reviewed by Dean Jackson. webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html is fixed by dropping 'thread' qualifiers on pregenerated functions webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination.html is fixed by introducing new operators for matrix +/- scalars webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html is fixed by adding a pre-pass to rename any reserved keywords, such as 'vertex' * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (BuildExternalAttributeIndexMap): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: * src/compiler/translator/TranslatorMetalDirect/RewriteKeywords.cpp: (sh::Rewriter::maybeCreateNewName): (sh::Rewriter::visitSymbolPost): (sh::Rewriter::predefineName): (sh::RewriteKeywords): 2021-03-23 Kimmo Kinnunen ANGLE is missing the explicit context headers https://bugs.webkit.org/show_bug.cgi?id=223470 Reviewed by Alexey Proskuryakov. Add the autogenerated .inc files for explicit context API into the ANGLE public headers. * ANGLE.xcodeproj/project.pbxproj: * adjust-angle-include-paths.py: (replace): 2021-03-19 Kyle Piddington Metal-Angle on Simulator does not support D24S8 correctly https://bugs.webkit.org/show_bug.cgi?id=223494 Reviewed by Dean Jackson. Re-ran autogen script for format table to add the missing format Corrected texture swizzle support. Swizzle is unsupported on simulator. * src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::init): 2021-03-19 Alex Christensen libANGLE-shared.dylib needs INSTALL_PATH when building Catalyst roots https://bugs.webkit.org/show_bug.cgi?id=223499 Reviewed by Dean Jackson. INSTALL_PATH was empty, so no dylib was being included in the root. This is needed to fix the Catalyst build after bug 218539 * Configurations/ANGLE-dynamic.xcconfig: 2021-03-06 Dean Jackson Metal-ANGLE can ASSERT because MTL signal event code is compiled out https://bugs.webkit.org/show_bug.cgi?id=222859 Reviewed by Ken Russell. With the Metal backend enabled, the test webgl/2.0.0/conformance2/state/gl-object-get-calls.html will occasionally crash in mtl_command_buffer when it hits unreachable code because ANGLE_MTL_EVENT_AVAILABLE hasn't been defined. This is available on macOS 10.14 and above, so should be enabled. At the same time, it doesn't make sense to call the method that has unreachable code, so guard against that in mtl_command_buffer. * src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::CommandBuffer::setPendingEvents): * src/libANGLE/renderer/metal/mtl_common.h: Define ANGLE_MTL_EVENT_AVAILABLE. 2021-03-18 Kyle Piddington 'MTLLanguageVersion1_0' is unavailable on Catalyst https://bugs.webkit.org/show_bug.cgi?id=223392 Reviewed by Jon Lee. Disable switch case in catalyst builds * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GetOperatorString): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: * src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::readPixels): * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::GetUserSetOrHighestMSLVersion): 2021-03-17 Kyle Piddington ANGLE Metal fixups for program generation, readPixels https://bugs.webkit.org/show_bug.cgi?id=223260 Reviewed by Dean Jackson. This diff fixes the following tests: webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html Is fixed by dropping 'thread' qualifiers on our intermediate texture sampling helper functions. Previously, any uniforms used in sampling textures would have had issues with their namespace. webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html is fixed by correcting an issue with reading from outside the framebuffer. ANGLE Metal was previously reading to the start of the output array, rather than a proper offset. webgl/2.0.0/conformance2/glsl3/array-equality.html is fixed by adding additional equality functions for handling arrays of structs. * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GetOperatorString): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: * src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::readPixels): 2021-03-16 Kyle Piddington Regressions from ANGLE Metal enablement https://bugs.webkit.org/show_bug.cgi?id=222239 This patch addressed several large bits of funcitonality that was missing from the original patch. 1) Introduce support for UBO's. This patch adds a DEQP-conformant implementation for UBO structs. This includes changes to the translator, and the frontend. 2) Introduce support for Transform feedback to the translator. We use a series of substitution macros at program link time to produce a transform-feedback varient shader, and use a vertex pre-pass to emulate transform feedback. 3) Various fixes to handle a few webgl2 asserts, such as large uniform buffers. This change (in ProgramMtl.mm) will reserve a uniform buffer of twice the normal size (4kb) if the program uniforms exceed that limit. (Fixes webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms.html webgl/2.0.0/conformance/uniforms/gl-uniform-arrays.html) Reviewed by Jon Lee. * ANGLE.xcodeproj/project.pbxproj: * include/platform/FeaturesMtl.h: * src/compiler.gni: * src/compiler/translator/BaseTypes.h: (sh::getQualifierString): * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::insertSampleMaskWritingLogic): (sh::metalShaderTypeFromGLSL): (sh::TranslatorMetalDirect::translateImpl): (sh::TranslatorMetalDirect::translate): * src/compiler/translator/TranslatorMetalDirect.h: (sh::TranslatorMetalReflection::TranslatorMetalReflection): (sh::TranslatorMetalReflection::addUserUniformBufferBinding): (sh::TranslatorMetalReflection::addUniformBufferBinding): (sh::TranslatorMetalReflection::getUserUniformBufferBindings const): (sh::TranslatorMetalReflection::getUserUniformBufferBinding const): (sh::TranslatorMetalReflection::getUniformBufferBinding const): (sh::TranslatorMetalReflection::reset): * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::~GenMetalTraverser): (GenMetalTraverser::emitOpeningPointerParen): (GenMetalTraverser::emitClosingPointerParen): (GetOperatorString): (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::emitType): (GenMetalTraverser::emitFieldDeclaration): (GenMetalTraverser::emitAttributeDeclaration): (GenMetalTraverser::emitUniformBufferDeclaration): (GenMetalTraverser::emitStructDeclaration): (GenMetalTraverser::emitOrdinaryVariableDeclaration): (GenMetalTraverser::visitSymbol): (GenMetalTraverser::visitBinary): (GenMetalTraverser::emitFunctionSignature): (GenMetalTraverser::emitFunctionReturn): (GenMetalTraverser::emitFunctionParameter): (GenMetalTraverser::visitFunctionDefinition): (GenMetalTraverser::visitAggregate): (RequiresSemicolonTerminator): (GenMetalTraverser::visitBlock): (GenMetalTraverser::visitBranch): * src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: * src/compiler/translator/TranslatorMetalDirect/IntroduceVertexIndexID.cpp: Added. (sh::Rewriter::Rewriter): (sh::IntroduceVertexAndInstanceIndex): * src/compiler/translator/TranslatorMetalDirect/IntroduceVertexIndexID.h: Added. * src/compiler/translator/TranslatorMetalDirect/Layout.cpp: * src/compiler/translator/TranslatorMetalDirect/Layout.h: * src/compiler/translator/TranslatorMetalDirect/ModifyStruct.cpp: (sh::TryCreateModifiedStruct): * src/compiler/translator/TranslatorMetalDirect/ModifyStruct.h: * src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp: (Pipeline::uses const): (Pipeline::getStructTypeName const): (Pipeline::getStructInstanceName const): (AllowPacking): (AllowPadding): (SaturateVectorOf): (Pipeline::externalStructModifyConfig const): (Pipeline::alwaysRequiresLocalVariableDeclarationInMain const): (Pipeline::isPipelineOut const): (Pipeline::externalAddressSpace const): (PipelineStructs::matches const): * src/compiler/translator/TranslatorMetalDirect/Pipeline.h: (sh::PipelineScoped::matches const): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: (sh::ProgramPrelude::ProgramPrelude): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.h: (sh::ProgramPreludeConfig::ProgramPreludeConfig): * src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp: (sh::Reducer::Reducer): * src/compiler/translator/TranslatorMetalDirect/RewritePipelines.cpp: (sh::GeneratePipelineStruct::exec): (sh::GeneratePipelineStruct::createInternalPipelineStruct): (sh::PipelineFunctionEnv::getUpdatedFunction): (sh::RewritePipelines): * src/compiler/translator/TranslatorMetalDirect/SymbolEnv.cpp: (SymbolEnv::removeSpace): (SymbolEnv::removePointer): (SymbolEnv::markAsUBO): (SymbolEnv::isUBO const): * src/compiler/translator/TranslatorMetalDirect/SymbolEnv.h: * src/compiler/translator/tree_ops/NameNamelessUniformBuffers.cpp: Added. (sh::NameNamelessUniformBuffers): * src/compiler/translator/tree_ops/NameNamelessUniformBuffers.h: Added. * src/compiler/translator/util.cpp: (sh::IsBuiltinOutputVariable): * src/libANGLE/renderer/gl/cgl/ContextCGL.cpp: * src/libANGLE/renderer/metal/BufferMtl.h: * src/libANGLE/renderer/metal/BufferMtl.mm: (rx::IndexConversionBufferMtl::IndexConversionBufferMtl): (rx::IndexConversionBufferMtl::getRangeForConvertedBuffer): * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::handleDirtyDriverUniforms): (rx::ContextMtl::handleDirtyGraphicsTransformFeedbackBuffersEmulation): (rx::ContextMtl::handleDirtyDepthBias): * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMaxSupportedESVersion const): (rx::DisplayMtl::generateConfigs): (rx::DisplayMtl::ensureCapsInitialized const): (rx::DisplayMtl::initializeFeatures): (rx::DisplayMtl::initializeShaderLibrary): * src/libANGLE/renderer/metal/FrameBufferMtl.h: * src/libANGLE/renderer/metal/ProgramMtl.h: (rx::ProgramMtl::createMslShaderLib): (rx::ProgramMtl::getXfbBindings const): (rx::ProgramMtl::getTranslatedShaderSource const): (rx::ProgramMtl::getXfbMslSource const): Deleted. * src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::ProgramMtl): (rx::ProgramMtl::destroy): (rx::ProgramMtl::reset): (rx::ProgramMtl::saveTranslatedShaders): (rx::ProgramMtl::loadTranslatedShaders): (rx::ProgramMtl::linkImplSpirv): (rx::ProgramMtl::linkImplDirect): (rx::ProgramMtl::linkImpl): (rx::ProgramMtl::linkTranslatedShaders): (rx::ProgramMtl::getBufferPool): (rx::ProgramMtl::resizeDefaultUniformBlocksMemory): (rx::ProgramMtl::getSpecializedShader): (rx::ProgramMtl::createMslShaderLib): (rx::ProgramMtl::commitUniforms): * src/libANGLE/renderer/metal/QueryMtl.h: * src/libANGLE/renderer/metal/RenderBufferMtl.mm: (rx::RenderbufferMtl::setStorageImpl): * src/libANGLE/renderer/metal/RenderTargetMtl.mm: (rx::RenderTargetMtl::setWithImplicitMSTexture): (rx::RenderTargetMtl::reset): * src/libANGLE/renderer/metal/ShaderMtl.mm: (rx::ShaderMtl::compile): * src/libANGLE/renderer/metal/SurfaceMtl.mm: (rx::WindowSurfaceMtl::initialize): * src/libANGLE/renderer/metal/TextureMtl.mm: (rx::TextureMtl::ensureSamplerStateCreated): (rx::TextureMtl::setPerSliceSubImage): (rx::TextureMtl::initializeContents): * src/libANGLE/renderer/metal/TransformFeedbackMtl.mm: * src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getIndexBuffer): * src/libANGLE/renderer/metal/mtl_common.h: * src/libANGLE/renderer/metal/mtl_constants.h: * src/libANGLE/renderer/metal/mtl_format_map.json: * src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::init): * src/libANGLE/renderer/metal/mtl_format_utils.mm: (rx::mtl::FormatTable::initialize): * src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.h: * src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::updateShaderAttributes): (rx::mtl::SubstituteTransformFeedbackMarkers): (rx::mtl::GenerateTransformFeedbackVaryingOutput): (rx::mtl::GenerateTransformFeedbackEmulationOutputs): (rx::mtl::getReflectionFromCompiler): (rx::mtl::GlslangGetMSL): * src/libANGLE/renderer/metal/mtl_render_utils.mm: (rx::mtl::TransformFeedbackUtils::createMslXfbLibrary): (rx::mtl::TransformFeedbackUtils::getTransformFeedbackRenderPipeline): * src/libANGLE/renderer/metal/mtl_resources.h: * src/libANGLE/renderer/metal/mtl_resources.mm: (rx::mtl::Texture::Texture): * src/libANGLE/renderer/metal/mtl_state_cache.mm: (rx::mtl::SamplerDesc::SamplerDesc): (rx::mtl::SamplerDesc::reset): (rx::mtl::RenderPipelineCache::RenderPipelineCache): (rx::mtl::RenderPipelineCache::createRenderPipelineState): * src/libANGLE/renderer/metal/mtl_utils.h: * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::GetUserSetOrHighestMSLVersion): (rx::mtl::CreateShaderLibrary): (rx::mtl::GetHighestSupportedMSLVersion): Deleted. * src/libANGLE/renderer/metal/shaders/blit.metal: * src/libANGLE/renderer/metal/shaders/format_autogen.h: * src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc: 2021-03-03 Kyle Piddington Support Depth24_Stencil8 simulation in the MTLSimulator https://bugs.webkit.org/show_bug.cgi?id=222624 Reviewed by Dean Jackson. Fixes the following tests: fast/canvas/webgl/context-creation-attributes.html fast/canvas/webgl/webgl-depth-texture.html webgl/1.0.3/conformance/misc/webgl-specific.html webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html * src/libANGLE/renderer/metal/mtl_format_map.json: * src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::init): 2021-02-26 Kyle Piddington Support fast/canvas/webgl/copyBufferSubData.html, fix bugs in fast/canvas/webgl/getBufferSubData-webgl1.html in Metal ANGLE on Simulator https://bugs.webkit.org/show_bug.cgi?id=222508 Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/BufferMtl.mm: (rx::BufferMtl::unmap): * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMaxSupportedESVersion const): 2021-02-26 Kyle Piddington Fix iOS simulator crashes due to unsupported simulator pixel formats: r8Unorm_srgb, a1bgr5Unorm, b5g6r5Unorm, abgr4Unorm, bgr5A1Unorm, and program generation asserts. iOS Simulator doesn't support the following packed 16 bit formats natively. While some of these can be emulated, we should fix up the crashing cases first. Also fix up program generation issues for void fragment shaders Disable support for PVRTC temporarily, as Non-square / NPOT PVRTC textures are not supported nativley on metal. https://bugs.webkit.org/show_bug.cgi?id=222458 Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitStructDeclaration): (GenMetalTraverser::emitFunctionReturn): (GenMetalTraverser::emitFunctionParameter): * src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp: (PipelineStructs::matches const): * src/compiler/translator/TranslatorMetalDirect/Pipeline.h: (sh::PipelineScoped::matches const): * src/libANGLE/renderer/metal/TextureMtl.mm: (rx::TextureMtl::setPerSliceSubImage): * src/libANGLE/renderer/metal/gen_mtl_format_table.py: * src/libANGLE/renderer/metal/mtl_format_map.json: * src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::init): (rx::mtl::VertexFormat::init): (rx::mtl::FormatTable::initNativeFormatCapsAutogen): * src/libANGLE/renderer/metal/mtl_format_utils.mm: (rx::mtl::FormatTable::initialize): * src/libANGLE/renderer/metal/mtl_resources.mm: (rx::mtl::Texture::Make2DTexture): (rx::mtl::Texture::MakeTexture): 2021-02-26 Kimmo Kinnunen Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2] https://bugs.webkit.org/show_bug.cgi?id=218637 Reviewed by Kenneth Russell. Remove incorrect validation that IOSurface pixel format matches the pixel format of the texture image being specified. The "Element" in IOSurface is a block of pixels, while the validation assumed it means one pixel. The validation failed for a compressed format. Currently we map non-public YUV formats, to which there is no elequent way of implementing the validation. Most likely this started to reproduce if IOSurfaceGetBytesPerElementOfPlane was changed to produce correct results for the above YUV format. Later commits could add the validation back for formats that we know the pixel format type. * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: (rx::IOSurfaceSurfaceEAGL::validateAttributes): 2021-02-25 Kyle Piddington Fix crashes in fast/canvas/webgl/texImage video tests Refactor IOSurfaceSurfaceMtl to match open source implementation. Additional cleanup https://bugs.webkit.org/show_bug.cgi?id=222331 Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/ContextMtl.h: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::onBackbufferResized): * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::createPbufferSurface): (rx::DisplayMtl::createPbufferFromClientBuffer): * src/libANGLE/renderer/metal/FrameBufferMtl.h: (rx::FramebufferMtl::getAttachedBackbuffer const): * src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::FramebufferMtl): * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h: * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl): (rx::IOSurfaceSurfaceMtl::~IOSurfaceSurfaceMtl): (rx::IOSurfaceSurfaceMtl::bindTexImage): (rx::IOSurfaceSurfaceMtl::releaseTexImage): (rx::IOSurfaceSurfaceMtl::getAttachmentRenderTarget): (rx::IOSurfaceSurfaceMtl::ensureColorTextureCreated): (rx::IOSurfaceSurfaceMtl::ValidateAttributes): * src/libANGLE/renderer/metal/SurfaceMtl.h: (rx::SurfaceMtl::getColorTexture): (rx::SurfaceMtl::getSamples const): (rx::SurfaceMtl::hasRobustResourceInit const): (rx::WindowSurfaceMtl::preserveBuffer const): * src/libANGLE/renderer/metal/SurfaceMtl.mm: (rx::SurfaceMtl::SurfaceMtl): * src/libANGLE/renderer/metal/TextureMtl.h: * src/libANGLE/renderer/metal/TextureMtl.mm: (rx::TextureMtl::ensureTextureCreated): (rx::TextureMtl::ensureSamplerStateCreated): (rx::TextureMtl::bindTexImage): (rx::TextureMtl::releaseTexImage): (rx::TextureMtl::getAttachmentRenderTarget): * src/libANGLE/renderer/metal/mtl_common.h: 2021-02-19 Kyle Piddington Fix a number of functional regressions caused by enabling the Metal ANGLE backend by default. https://bugs.webkit.org/show_bug.cgi?id=220895 Reviewed by Kenneth Russell. Take two of this commit - this time with the new files FixTypeConstructors and NameEmbeddedUniformStructsMetal. Fixed webgl/1.0.3/conformance/context/context-hidden-alpha.html MTL Translator direct fixes for webgl/1.0.3/conformance/glsl/constructors/glsl-construct-*vec2 tests, Plus fix for GL_VertexIndex Fix EmitMetal crash for missing function textureRect. Additional fixes for 73675990, shaders-with-invariance.html, shaders-with-uniform-structs.html, struct-specifiers-in-uniforms.html, framebuffer-object-attachment.html Fixed clamping of array elements. * ANGLE.xcodeproj/project.pbxproj: * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl): * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::visitBinary): (GenMetalTraverser::BuildFuncToName): * src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: Added. (sh::FixTypeTraverser::FixTypeTraverser): (sh::FixTypeConstructors): * src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h: Added. * src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp: Added. (sh::NameEmbeddedStructUniformsMetal): * src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h: Added. * src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp: (SaturateVectorOf): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: (sh::ProgramPrelude::ProgramPrelude): * src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp: (sh::Reducer::Reducer): (sh::ReduceInterfaceBlocks): * src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h: * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp: * src/libANGLE/renderer/load_functions_table_autogen.cpp: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::drawElementsImpl): * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h: * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl): (rx::IOSurfaceSurfaceMtl::createBackingTexture): * src/libANGLE/renderer/metal/RenderBufferMtl.mm: (rx::RenderbufferMtl::setStorageImpl): * src/libANGLE/renderer/metal/VertexArrayMtl.h: * src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getIndexBuffer): (rx::VertexArrayMtl::convertIndexBuffer): (rx::VertexArrayMtl::streamIndexBufferFromClient): * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::InitializeDepthStencilTextureContentsGPU): * src/libANGLE/renderer/metal/shaders/blit.metal: * src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc: 2021-02-19 Chris Dumez Unreviewed, reverting r273188. Broke the build: Is missing a cpp file Reverted changeset: "Fix a number of functional regressions caused by enabling the Metal ANGLE backend by default." https://bugs.webkit.org/show_bug.cgi?id=220895 https://commits.webkit.org/r273188 2021-02-19 Kyle Piddington Fix a number of functional regressions caused by enabling the Metal ANGLE backend by default. https://bugs.webkit.org/show_bug.cgi?id=220895 Reviewed by Kenneth Russell. Fixed webgl/1.0.3/conformance/context/context-hidden-alpha.html MTL Translator direct fixes for webgl/1.0.3/conformance/glsl/constructors/glsl-construct-*vec2 tests, Plus fix for GL_VertexIndex Fix EmitMetal crash for missing function textureRect. Additional fixes for 73675990, shaders-with-invariance.html, shaders-with-uniform-structs.html, struct-specifiers-in-uniforms.html, framebuffer-object-attachment.html Fixed clamping of array elements. * ANGLE.xcodeproj/project.pbxproj: * src/compiler/translator/TranslatorMetalDirect.cpp: (sh::TranslatorMetalDirect::translateImpl): * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::visitBinary): (GenMetalTraverser::BuildFuncToName): * src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: Added. (sh::FixTypeTraverser::FixTypeTraverser): (sh::FixTypeConstructors): * src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h: Added. * src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp: Added. (sh::NameEmbeddedStructUniformsMetal): * src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h: Added. * src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp: (SaturateVectorOf): * src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp: (sh::ProgramPrelude::ProgramPrelude): * src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp: (sh::Reducer::Reducer): (sh::ReduceInterfaceBlocks): * src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h: * src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp: * src/libANGLE/renderer/load_functions_table_autogen.cpp: * src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::drawElementsImpl): * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h: * src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl): (rx::IOSurfaceSurfaceMtl::createBackingTexture): * src/libANGLE/renderer/metal/RenderBufferMtl.mm: (rx::RenderbufferMtl::setStorageImpl): * src/libANGLE/renderer/metal/VertexArrayMtl.h: * src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getIndexBuffer): (rx::VertexArrayMtl::convertIndexBuffer): (rx::VertexArrayMtl::streamIndexBufferFromClient): * src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::InitializeDepthStencilTextureContentsGPU): * src/libANGLE/renderer/metal/shaders/blit.metal: * src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc: 2021-02-19 Kyle Piddington Crash in readPixels with ANGLE Metal backend https://bugs.webkit.org/show_bug.cgi?id=220877 RenderbufferMtl::initializeContents is sometimes bound with a default level index, which doesn't specify type, layer count, or other information. When this path is called with an invalid index, assume a 2d index. Reviewed by Dean Jackson. * src/libANGLE/renderer/metal/RenderBufferMtl.mm: (rx::RenderbufferMtl::initializeContents): 2021-02-17 Dean Jackson Metal-Angle on IOS fails in ValidateCreatePbufferFromClientBuffer https://bugs.webkit.org/show_bug.cgi?id=222069 Reviewed by Simon Fraser. Due to the differences between OpenGL and OpenGLES, WebCore binds its IOSurfaces to a different texture target on macOS and iOS. This isn't really needed with the Metal-ANGLE backend, but while we're still supporting the OpenGL backend it is easier to have the Metal backend use both targets. * src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::generateConfigs): Look for EGL_TEXTURE_2D on iOS. Note we don't have to worry about the weird "iOS App on macOS" situation since that only applies to using OpenGLES on macOS. Yay for Metal! 2021-01-13 Kenneth Russell [WebGL2] fbostatequery, negativebufferapi, negativevertexarrayapi, shaderstatequery conformance failures https://bugs.webkit.org/show_bug.cgi?id=220372 Reviewed by Darin Adler. Add a needed early-out in drawArraysInstanced validation when the primitive count is zero. This patch will be upstreamed to ANGLE afterward. * src/libANGLE/validationES.h: (gl::ValidateDrawArraysAttribs): (gl::ValidateDrawArraysCommon): 2021-01-08 Kyle Piddington Failures of attribute location conformance tests with Metal backend https://bugs.webkit.org/show_bug.cgi?id=220137 Reviewed by Dean Jackson. * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitAttributeDeclaration): * src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::updateShaderAttributes): (rx::mtl::GlslangGetMSL): 2021-01-04 Fujii Hironori [WinCairo][CMake][MSBuild][ANGLE] entry_points_*.h was generated twice both in LibGLESv2EntryPointsHeaders and GLESv2 projects https://bugs.webkit.org/show_bug.cgi?id=220251 Reviewed by Kenneth Russell. WinCairo port is supporting both CMake Visual Studio generator and Ninja generator. However, CMake Visual Studio builds was failing as the following error. > ANGLE\Headers\ANGLE/entry_points_egl.h(13,10): fatal error C1083: Cannot open include file: 'export.h': No such file or directory (compiling source file ...\texmap\ANGLEContext.cpp) entry_points_egl.h was generated twice both in LibGLESv2EntryPointsHeaders and GLESv2 projects. However, the post-process script adjust-angle-include-paths.py was invoked only in LibGLESv2EntryPointsHeaders project. GLESv2 target needs to have a direct or indirect dependency to LibGLESv2EntryPointsHeaders target for CMake Visual Studio generator to eliminate duplicated custom commands. * CMakeLists.txt: Added add_dependencies(GLESv2 LibGLESv2EntryPointsHeaders) only if WIN32. 2021-01-02 James Darpinian Enable some ANGLE workarounds on iOS https://bugs.webkit.org/show_bug.cgi?id=220203 Reviewed by Kenneth Russell. Running ANGLE's unit tests on iOS upstream exposed the need to enable a couple of existing workaround flags. https://crrev.com/c/2601106 and https://crrev.com/c/2606657 are the upstream changes corresponding to these fixes. * src/libANGLE/renderer/gl/FramebufferGL.cpp: (rx::FramebufferGL::blit): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-12-23 Kyle Piddington [ANGLE] Metal backend renders tdl.js samples as red https://bugs.webkit.org/show_bug.cgi?id=220129 Reviewed by Kenneth Russell. * src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::blitWithDraw): 2020-12-22 Michael Catanzaro warning: enumerated and non-enumerated type in conditional expression in Compiler.cpp https://bugs.webkit.org/show_bug.cgi?id=220062 Reviewed by Dean Jackson. Building ANGLE with -Wextra is too aggressive. -Wextra is great for code that we control, where the burden of squashing warnings is relatively low. But with ANGLE, we have to either land fixes upstream, or carry them downstream forever. It doesn't make sense to bother with this for minor build warning fixes when upstream is clearly not using the same warning flags and/or same compiler that we do. Since we add -Wextra in our global flags, we have to manually override it here. We can now also stop explicitly disabling other warnings that are implied by -Wextra. Finally, note that changes.diff is not modified because this is, confusingly, a downstream WebKit build file. * CMakeLists.txt: 2020-12-22 Kenneth Russell [WebGL2] deqp/functional/gles3/texturespecification RGB4444 and RGB565 failures on Mac AMD https://bugs.webkit.org/show_bug.cgi?id=220093 Reviewed by Alex Christensen. Promote the RGBA4444 and RGB565 texture formats to RGB[A]8 in order to work around OpenGL driver bugs on macOS with AMD GPUs. * include/platform/FeaturesGL.h: * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::GetNativeInternalFormat): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-12-16 Fujii Hironori [WinCairo] Enable USE_ANGLE https://bugs.webkit.org/show_bug.cgi?id=219421 Reviewed by Don Olmstead. * CMakeLists.txt: Added entry_points_egl_ext.h to libglesv2_entry_points_headers. 2020-12-14 Alex Christensen Fix build. * src/gpu_info_util/SystemInfo_apple.mm: (angle::GetSystemInfo): ##if should be #if 2020-12-14 Dean Jackson Build fix for Mac Catalyst. Remove code that was accidentally included in the previous commit. * src/gpu_info_util/SystemInfo_apple.mm: (angle::GetSystemInfo): 2020-12-12 Kyle Piddington Improved Metal backend for ANGLE, with direct GLSL to Metal compiler translation https://bugs.webkit.org/show_bug.cgi?id=219759 Reviewed by Dean Jackson. Reviewer's note: While this patch is landing in WebKit now, it will be submitted to the main ANGLE project for official review, then re-merged back into WebKit. The feature provided here is not enabled by default. Provide a WebGL1 compliant transpiler for GLSL content. With this change, we can leverage the already present open source work in the ANGLE project to enable webgl to run on top of Metal. In addition, this patch contains a number of fixes to the existing ANGLE Metal backend. Test: Tests were validated with the dEQP test suite with ANGLE, in addition to running standard layout tests. 2020-12-04 Adam Roben More FALLBACK_PLATFORM adoption https://bugs.webkit.org/show_bug.cgi?id=219545 Reviewed by Tim Horton. * Configurations/SDKVariant.xcconfig: WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to NO. 2020-12-04 Rob Buis WebGL2: Null pointer dereference in std::string implementation in gl::Shader::getTransformFeedbackVaryingMappedName https://bugs.webkit.org/show_bug.cgi?id=218602 Reviewed by Dean Jackson. Skip varying if field is not found since in this case we have no match for the varying parameter name. * src/libANGLE/Shader.cpp: (gl::Shader::getTransformFeedbackVaryingMappedName): 2020-12-03 Adam Roben Adopt FALLBACK_PLATFORM https://bugs.webkit.org/show_bug.cgi?id=219504 Reviewed by Tim Horton. * Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's defined, otherwise use PLATFORM_NAME as before. 2020-12-02 Dean Jackson Build fix for Mac Catalyst. Include the SystemInfo header. * src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp: 2020-12-02 Rob Buis Fix ANGLE CMakeLists.txt warnings https://bugs.webkit.org/show_bug.cgi?id=219260 Reviewed by Philippe Normand. Fix warning when building on GTK: Make Warning (dev) at Source/ThirdParty/ANGLE/CMakeLists.txt:103: Syntax Warning in cmake code at column 37 Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it. * CMakeLists.txt: 2020-12-02 James Darpinian Update ANGLE 2020-11-12 https://bugs.webkit.org/show_bug.cgi?id=218877 Reviewed by Kenneth Russell. * Excessively large list of upstream changes omitted. 2020-11-30 Ryan Haddad Unreviewed, reverting r270129, r270194, and r270258. r270129 broke macCatalyst build Reverted changesets: "Update ANGLE 2020-11-12" https://bugs.webkit.org/show_bug.cgi?id=218877 https://trac.webkit.org/changeset/270129 "Fix ANGLE CMakeLists.txt warnings" https://bugs.webkit.org/show_bug.cgi?id=219260 https://trac.webkit.org/changeset/270194 "Attempted build fix for Mac Catalyst. Include the SystemInfo header." https://trac.webkit.org/changeset/270258 2020-11-30 Dean Jackson Attempted build fix for Mac Catalyst. Include the SystemInfo header. * src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp: 2020-11-27 Fujii Hironori [ANGLE] Convert adjust-angle-include-paths.sh to a Python script for Windows without Cygwin https://bugs.webkit.org/show_bug.cgi?id=219299 Reviewed by Kenneth Russell. WinCairo port can't use shell scripts because it isn't using Cygwin. * ANGLE.xcodeproj/project.pbxproj: * CMakeLists.txt: * adjust-angle-include-paths.py: Added. * adjust-angle-include-paths.sh: Removed. 2020-11-27 Rob Buis Fix ANGLE CMakeLists.txt warnings https://bugs.webkit.org/show_bug.cgi?id=219260 Reviewed by Philippe Normand. Fix warning when building on GTK: Make Warning (dev) at Source/ThirdParty/ANGLE/CMakeLists.txt:103: Syntax Warning in cmake code at column 37 Argument not separated from preceding token by whitespace. This warning is for project developers. Use -Wno-dev to suppress it. * CMakeLists.txt: 2020-11-20 James Darpinian Update ANGLE 2020-11-12 https://bugs.webkit.org/show_bug.cgi?id=218877 Reviewed by Kenneth Russell. * Excessively large list of upstream changes omitted. 2020-11-19 James Darpinian Improve update-angle script and move to Tools/Scripts https://bugs.webkit.org/show_bug.cgi?id=218831 Reviewed by Kenneth Russell. update-angle fetches changes from upstream ANGLE into Source/ThirdParty/ANGLE, updates WebKit's build files and helps merge WebKit's local changes. - Moved to Tools/Scripts so that it doesn't overwrite itself during the update process. - Reversed direction of rebase. Before the script rebased ANGLE on WebKit; now it rebases WebKit's ANGLE changes on upstream ANGLE master. This makes a lot more sense and results in fewer changes to rebase. This requires the use of git-filter-repo to make the rebase not prohibitively slow. - Removed bash dependency. - Fixed all issues identified by shellcheck. - Fixed changes.diff to show added files, while filtering files added by WebKit's build process. - Fixed changes.diff to ignore whitespace changes. - Added --regenerate-changes-diff option to update changes.diff in between ANGLE updates. - Updated [angle_]commit.h generation for upstream changes. - Removed need to run the script multiple times during the rebase process. * update-angle.sh: Removed. 2020-11-19 Dean Jackson Add schemes for ANGLE to Xcode project https://bugs.webkit.org/show_bug.cgi?id=217546 rdar://69062082 Reviewed by Alex Christensen. * Configurations/Base.xcconfig: Update paths for built frameworks. * ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (dynamic).xcscheme: Added. * ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (static).xcscheme: Added. * ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE.xcscheme: Added. 2020-11-04 David Kilzer WebKit should remove unused debug variant support Reviewed by Darin Adler. Remove support for building the debug variant since it is currently unused. We now set default values for the DEAD_CODE_STRIPPING, DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL and STRIP_INSTALLED_PRODUCT variables. Also move these values out of the Xcode project into Base.xcconfig files using the [config=Debug] specifier so that these overrides are next to the definitions. Additional changes in behavior are noted below. * Configurations/ANGLE-dynamic.xcconfig: - Move DEBUG_DEFINES to Base.xcconfig. - Set up DEAD_CODE_STRIPPING and STRIP_INSTALLED_PRODUCT the same as for other WebKit projects. Previously dead code and symbols were never stipped in Release or Production builds. * Configurations/ANGLE-static.xcconfig: - Move DEBUG_DEFINES to Base.xcconfig. * Configurations/Base.xcconfig: - Set up DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL the same as other WebKit projects. Previously Debug builds were built with -Os instead of -O0. 2020-11-03 David Kilzer Stop building ANGLE source files twice Reviewed by Dean Jackson. * ANGLE.xcodeproj/project.pbxproj: (ANGLE (dynamic)): - Replace sources with empty.cpp. Xcode requires a single source file to be compiled to create a dylib, even if the static library contains all necessary symbols. - Add dependency on "ANGLE (static)" target. * Configurations/ANGLE-dynamic.xcconfig: (ANGLE_OTHER_LDFLAGS): - Add $(ANGLE_STATIC_LIB_OTHER_LDFLAGS). (ANGLE_STATIC_LIB_OTHER_LDFLAGS): Add. - Special linker command-line switch to load all symbols from libANGLE.a when linking libANGLE-shared.dylib. * src/empty.cpp: Add. - See above why this is needed by Xcode. 2020-10-12 Dean Jackson Add schemes for ANGLE to Xcode project https://bugs.webkit.org/show_bug.cgi?id=217546 rdar://69062082 Reviewed by Alex Christensen. * ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (dynamic).xcscheme: Added. * ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE (static).xcscheme: Added. * ANGLE.xcodeproj/xcshareddata/xcschemes/ANGLE.xcscheme: Added. 2020-10-28 Tim Horton macCatalyst WebGL on Apple Silicon devices is using a software renderer https://bugs.webkit.org/show_bug.cgi?id=218303 Reviewed by Geoffrey Garen. * src/gpu_info_util/SystemInfo.h: * src/gpu_info_util/SystemInfo_apple.mm: (angle::GetSystemInfo): We can just use the macOS version of GetSystemInfo in macCatalyst. * src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo_mac): * src/libANGLE/Display.cpp: * src/libANGLE/formatutils.cpp: (gl::BuildInternalFormatInfoMap): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::GenerateCaps): It turns out we must use EAGL in macCatalyst on Apple Silicon in all cases, not just in-process in iOS apps (the problem is not just about coexistence of the two GLs, but actually about our ability to load the accelerated renderer /at all/ in macCatalyst processes). I left the runtime switching in place, because there is a future in which we /can/ use CGL in non-iOS-app processes, but that future is not now. 2020-10-13 Keith Rollin Remove leftover MACOSX_DEPLOYMENT_TARGET_macosx support https://bugs.webkit.org/show_bug.cgi?id=217649 Reviewed by Darin Adler. Bug 42796 introduced MACOSX_DEPLOYMENT_TARGET_ as "support for compiling WebKit against iOS SDKs". Support for the iOS part of this feature was later removed in several changes, including Bug 139212, Bug 139463 and Bug 144762. However, vestiges have remained for five or six years in the form of MACOSX_DEPLOYMENT_TARGET_macosx. The inclusion of the platform in MACOSX_DEPLOYMENT_TARGET is no longer needed and can be removed. This changes brings most projects in conformance with other projects that don't support including the platform in MACOSX_DEPLOYMENT_TARGET, including WebEditingTester, gtest, WebKitTestRunner, MiniBrowser, and TestWebKitAPI. Along the way, remove a couple of left-over references to macOS 10.16, and a couple of places where [sdk=macosx*] was still being used. With this change, initialization of MACOSX_DEPLOYMENT_TARGET should be consistent across all projects, with two exceptions: WebKitLauncher (which hardcodes it to 10.12) and libwebrtc's copy of googletest (which hardcodes it to 10.4). The reasons for these hard-coded values is not apparent, so leave them be. * Configurations/DebugRelease.xcconfig: 2020-10-12 Luming Yin [macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building with Xcode 12 on macOS Big Sur SUs https://bugs.webkit.org/show_bug.cgi?id=217602 rdar://70194453 Reviewed by Darin Adler. The previous workaround turns out to be ineffective because we can't set the value of TARGET_MAC_OS_X_VERSION_MAJOR based on a previous value of itself. Introduce a new variable TARGET_MAC_OS_X_VERSION_MAJOR to determine whether we need to explicitly adjust MAC_OS_X_VERSION_MAJOR to 110000. * Configurations/DebugRelease.xcconfig: 2020-10-12 Luming Yin [macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building with Xcode 12 on macOS Big Sur SUs https://bugs.webkit.org/show_bug.cgi?id=217602 rdar://70194453 Reviewed by Darin Adler. Due to a bug in Xcode (rdar://70185899), Xcode 12.0 and Xcode 12.1 Beta incorrectly includes the minor release number in MAC_OS_X_VERSION_MAJOR, which causes Debug and Release builds of WebKit to be misconfigured when building on macOS Big Sur SUs, leading to webpages failing to load. To work around the Xcode bug, when the MAC_OS_X_VERSION_MAJOR includes the minor version number, drop the minor version number by explicitly setting TARGET_MAC_OS_X_VERSION_MAJOR to 110000. Note: This change should be reverted after is resolved. * Configurations/DebugRelease.xcconfig: 2020-10-11 Luming Yin Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur or later https://bugs.webkit.org/show_bug.cgi?id=217594 rdar://70188497 Reviewed by Darin Adler. To ensure successful Mac Catalyst WebKit builds, strip the patch version from TARGET_MAC_OS_X_VERSION_MAJOR by using two `base:`s on MACOSX_DEPLOYMENT_TARGET. * Configurations/Base.xcconfig: 2020-10-11 Luming Yin Ignore deployment suffix and identifier when computing major OS version for macOS Big Sur and newer https://bugs.webkit.org/show_bug.cgi?id=217584 rdar://70168426 Reviewed by Darin Adler. Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions. Only use the deployment target base for macOS Big Sur and newer. Keep the manual definitions for legacy versions of macOS. * Configurations/Base.xcconfig: 2020-10-07 Keith Rollin Update post-processing rules for headers to not unnecessarily change timestamps https://bugs.webkit.org/show_bug.cgi?id=217371 Reviewed by Darin Adler. Under XCBuild, the scripts employed in custom build rules can be invoked in innocuous situations. A common example is when the user is building from the command-line and they change the `make` output from stdout to a file, or vice-versa. Changing the output changes the setting of the COLOR_DIAGNOSTICS environment variable, which is enough to cause XCBuild to think something is different and that the custom build rule needs to be invoked. For the script's part, nothing significant has changed, yet it post-processes the header files, causing their modification dates to change, causing downstream rebuilds to occur. Fix this problem by adopting an approach that doesn't modify the post-processed header files unless their contents actually change. * adjust-angle-include-paths-rule: 2020-10-02 Kimmo Kinnunen [iOS WK1] Crashes when using ANGLE WebGL from another thread https://bugs.webkit.org/show_bug.cgi?id=216106 Reviewed by Kenneth Russell. Add two extensions for EAGL and CGL backends to declare the underlying platform context being "volatile". It means that the thread-global current context is being modified behind ANGLE. If ANGLE context is marked volatile for a particular API, it will sync the underlying context for every EGL function that needs the context. Most intuitive use is for the client to call eglMakeCurrent before calling any gl function if the client knowns the platform state might be dirty. Implement eglReleaseThread for EAGL and CGL backends. Releasing thread will unset the platform current context. Fix a bug of omitting EGL_ANGLE_device_eagl from being advertised. * extensions/EGL_ANGLE_platform_angle_device_context_volatile_cgl.txt: Added. * extensions/EGL_ANGLE_platform_angle_device_context_volatile_eagl.txt: Added. * include/EGL/eglext_angle.h: * src/libANGLE/Caps.cpp: (egl::DeviceExtensions::getStrings const): (egl::ClientExtensions::getStrings const): * src/libANGLE/Caps.h: * src/libANGLE/Display.cpp: (egl::Display::prepareForCall): (egl::Display::releaseThread): (egl::GenerateClientExtensions): * src/libANGLE/Display.h: * src/libANGLE/renderer/DisplayImpl.cpp: (rx::DisplayImpl::prepareForCall): (rx::DisplayImpl::releaseThread): * src/libANGLE/renderer/DisplayImpl.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::initialize): (rx::DisplayCGL::terminate): (rx::DisplayCGL::prepareForCall): (rx::DisplayCGL::releaseThread): (rx::DisplayCGL::makeCurrent): * src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::prepareForCall): (rx::DisplayEAGL::releaseThread): * src/libANGLE/validationEGL.cpp: * src/libGLESv2/entry_points_egl.cpp: * src/libGLESv2/entry_points_egl_ext.cpp: 2020-09-29 James Darpinian Fix EXT_color_buffer_half_float on iOS https://bugs.webkit.org/show_bug.cgi?id=217107 Reviewed by Kenneth Russell. * src/libANGLE/Context.cpp: (gl::Context::generateSupportedExtensions const): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::GenerateTextureFormatCaps): 2020-09-24 Dean Jackson WebGL should use GLES in iOS apps running on Apple Silicon https://bugs.webkit.org/show_bug.cgi?id=216722 Reviewed by Tim Horton. Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL) depending on both compile and runtime configurations. Intel Mac -> CGL Intel Mac Catalyst -> CGL Intel iOS Simulator -> EAGL iOS Device -> EAGL Apple Silicon Mac -> CGL Apple Silicon Mac Catalyst (with Mac app) -> CGL Apple Silicon Mac Catalyst (with iOS app) -> EAGL The trickiest bit is Apple Silicon Mac Catalyst, which depends on the type of the application it is attempting to run. In that case ANGLE must compile both the CGL and EAGL interfaces and then pick one to use after launch. * ANGLE.xcodeproj/project.pbxproj: Add new files. * Configurations/ANGLE-dynamic.xcconfig: Remove all the OpenGL* linking. * Configurations/ANGLE-static.xcconfig: * GLESv2.cmake: New files. * src/common/platform.h: New definitions for CPU type on Apple Systems. * src/gpu_info_util/SystemInfo.h: Split SystemInfo for Apple into two files, for iOS and Mac. Added a field for isiOSAppOnMac that will only be true when running an iOS binary on Apple Silicon. * src/gpu_info_util/SystemInfo_apple.mm: Added. Decides which SystemInfo to call. (angle::GetSystemInfo): * src/gpu_info_util/SystemInfo_ios.cpp: (angle::GetSystemInfo_ios): (angle::GetSystemInfo): Deleted. * src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo_mac): (angle::GetSystemInfo): Deleted. * src/libANGLE/Caps.cpp: Can no longer just check for PLATFORM_IOS. This might still need a runtime check. (gl::DetermineDepthTextureANGLESupport): (gl::DetermineDepthTextureOESSupport): * src/libANGLE/Display.cpp: This is the main initialization point for ANGLE, which decides at compile/runtime which variant of Display to create. * src/libANGLE/formatutils.cpp: Add the correct formats. (gl::BuildInternalFormatInfoMap): * src/libANGLE/renderer/gl/SoftLinking_apple.h: Added. Macros to help soft-link functions and ObjC classes. * src/libANGLE/renderer/gl/cgl/CGLFunctions.cpp: Added. Where we soft-link all the OpenGL/CGL API. * src/libANGLE/renderer/gl/cgl/CGLFunctions.h: Added. * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Use the soft-linked methods. * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Rename WebSwapLayer to WebSwapLayerCGL otherwise it clashes with the EAGL version. (rx::WindowSurfaceCGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer copyCGLPixelFormatForDisplayMask:]): Deleted. (-[WebSwapLayer copyCGLContextForPixelFormat:]): Deleted. (-[WebSwapLayer canDrawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted. (-[WebSwapLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted. * src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Similar changes to the CGL implementation. * src/libANGLE/renderer/gl/eagl/DeviceEAGL.h: * src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::WorkerContextEAGL::~WorkerContextEAGL): (rx::WorkerContextEAGL::makeCurrent): (rx::WorkerContextEAGL::unmakeCurrent): (rx::DisplayEAGL::createWorkerContext): * src/libANGLE/renderer/gl/eagl/EAGLFunctions.h: Added. * src/libANGLE/renderer/gl/eagl/EAGLFunctions.mm: Added. * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: * src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp: * src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp: * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (-[WebSwapLayerEAGL display]): (rx::WindowSurfaceEAGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer display]): Deleted. * src/libANGLE/renderer/gl/renderergl_utils.cpp: Runtime check. (rx::nativegl_gl::GenerateCaps): 2020-09-25 James Darpinian Support EXT_float_blend https://bugs.webkit.org/show_bug.cgi?id=216949 Reviewed by Kenneth Russell. * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::GenerateCaps): 2020-09-24 Kimmo Kinnunen REGRESSION: Textures Fail to Render in WebGL from HLS Stream [iOS 14] https://bugs.webkit.org/show_bug.cgi?id=215908 Reviewed by Dean Jackson. Disable ANGLE workers until EAGL implementation is more complete. Current implementation fails to compile any shader, since the compilation happens in the worker thread and worker EAGL context which does not use the same sharegroup as the main context. The shader objects are created in the main context but the shader source setting and compilation happens in the worker context. EAGL needs a flush between state changes, and adding that correctly is a bigger change to be done later. Use sized formats when calling [EAGLContext -texImageIOSurface] from EGL_ANGLE_iosurface_client_buffer code. The texImageIOSurface accepts parameters with glTexImage2D logic. On ES3, some of the internal formats must be sized formats. The EAGLContext instantiated by ANGLE is ES3, even if the ANGLE context would be ES2. No tests added since this should be caught with the many video related tests. It's unclear why this is not the case -- at least on real hw. This is to be investigated later, too. * src/libANGLE/renderer/driver_utils.h: (rx::IsIOS): * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-09-11 James Darpinian [WebGL2] Support EXT_color_buffer_half_float on WebGL 2.0 contexts https://bugs.webkit.org/show_bug.cgi?id=216010 Reviewed by Kenneth Russell. * src/libANGLE/formatutils.cpp: (gl::SizedHalfFloatRGTextureAttachmentSupport): (gl::SizedHalfFloatRGBTextureAttachmentSupport): (gl::SizedHalfFloatRGBRenderbufferSupport): (gl::SizedHalfFloatRGBATextureAttachmentSupport): 2020-09-03 Kimmo Kinnunen Mark uniform samplers in an array unused per element https://bugs.webkit.org/show_bug.cgi?id=215630 Reviewed by Dean Jackson. Mark uniform samplers in an uniform sampler array unused per element, if driver informs the element being unused. Before, one element would mark the whole array as being unused, and samplers that were in use would not be updated. * src/libANGLE/Context.cpp: (gl::StateCache::updateActiveImageUnitIndices): * src/libANGLE/Program.cpp: (gl::SamplerBinding::SamplerBinding): (gl::ImageBinding::ImageBinding): (gl::Program::getSamplerUniformBinding const): (gl::Program::getImageUniformBinding const): (gl::Program::linkSamplerAndImageBindings): (gl::Program::updateSamplerUniform): (gl::Program::serialize const): (gl::Program::deserialize): * src/libANGLE/ProgramExecutable.cpp: (gl::ProgramExecutable::updateActiveSamplers): (gl::ProgramExecutable::updateActiveImages): (gl::ProgramExecutable::setSamplerUniformTextureTypeAndFormat): * src/libANGLE/ProgramExecutable.h: * src/libANGLE/renderer/gl/ProgramGL.cpp: (rx::ProgramGL::markUnusedUniformLocations): * src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::updateTextures): * src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp: (rx::ProgramExecutableVk::updateImagesDescriptorSet): (rx::ProgramExecutableVk::updateTexturesDescriptorSet): * src/tests/gl_tests/ComputeShaderTest.cpp: * src/tests/gl_tests/UniformTest.cpp: 2020-09-01 David Kilzer [ANGLE] InternalFormat::blendSupport is uninitialized by constructor Reviewed by Kenneth Russell. * changes.diff: Add this patch. * src/libANGLE/formatutils.cpp: (gl::InternalFormat::InternalFormat): - Initialize blendSupport to NeverSupported. 2020-08-31 James Darpinian Implement WEBGL_compressed_texture_s3tc_srgb extension https://bugs.webkit.org/show_bug.cgi?id=215973 Reviewed by Dean Jackson. * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::ExtAndVersionOrExt): (rx::nativegl::BuildInternalFormatInfoMap): 2020-08-12 Keith Rollin Remove the need for defining USE_NEW_BUILD_SYSTEM https://bugs.webkit.org/show_bug.cgi?id=215439 Reviewed by Darin Adler. When building WebKit for XCBuild, we currently require that the external build system (such as the Makefile, build-webkit, etc.) defines the USE_NEW_BUILD_SYSTEM=YES build setting. This build setting controls parts of our build instructions that are sensitive to when XCBuild or the Legacy build system are being used. Notably, we need to know when to use our custom “copy and modify” scripts with copying certain header files (used with the Legacy build system) vs. using the enhanced Copy Headers build phase that’s enabled with APPLY_RULES_IN_COPY_HEADERS=YES (introduced with and used by XCBuild). The choice of which method to copy headers is used is controlled by USE_NEW_BUILD_SYSTEM. There is no built-in build setting that we can probe to help us determine which approach to take when copying and modifying headers, which is why we need to define USE_NEW_BUILD_SYSTEM ourselves. But it turns out that we can *detect* which build system is being used by taking advantage of a subtle difference between the two systems. As noted in: https://developer.apple.com/documentation/xcode-release-notes/build-system-release-notes-for-xcode-10 “When an .xcconfig file contains multiple assignments of the same build setting, later assignments using $(inherited) or $() will inherit from earlier assignments in the .xcconfig. The legacy build system caused every use of $(inherited) or $() skip any other values defined within the .xcconfig.” This difference can be exploited as follows: WK_WHICH_BUILD_SYSTEM = not_ WK_WHICH_BUILD_SYSTEM = $(inherited)legacy WK_USE_NEW_BUILD_SYSTEM = $(WK_USE_NEW_BUILD_SYSTEM_$(WK_WHICH_BUILD_SYSTEM)) WK_USE_NEW_BUILD_SYSTEM_legacy = NO WK_USE_NEW_BUILD_SYSTEM_not_legacy = YES We can then use WK_USE_NEW_BUILD_SYSTEM where we used to use the externally-defined USE_NEW_BUILD_SYSTEM. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE-dynamic.xcconfig: * Configurations/ANGLE-static.xcconfig: * Configurations/Base.xcconfig: 2020-08-07 Dean Jackson ANGLE: No need to check for Catalyst in the iOS build https://bugs.webkit.org/show_bug.cgi?id=215249 Reviewed by Tim Horton. The DisplayEAGL class is never used for Catalyst, so doesn't need to handle it. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::generateConfigs): 2020-08-05 Tim Horton Remove all references to non-existent 10.16 https://bugs.webkit.org/show_bug.cgi?id=215202 Reviewed by Wenson Hsieh. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebKitTargetConditionals.xcconfig: 2020-07-29 Michael Catanzaro [GTK] 2.29.4 fails to link on armv7hl https://bugs.webkit.org/show_bug.cgi?id=214934 Reviewed by Carlos Alberto Lopez Perez. Link ANGLE to with -ldl * CMakeLists.txt: 2020-07-29 Kenneth Russell Roll ANGLE to 2020-07-28 https://bugs.webkit.org/show_bug.cgi?id=214897 Reviewed by Alex Christensen. Roll to current ANGLE revision. Large ChangeLog below has been truncated except for a few significant files. Add dependency on zlib wrapper in third_party/zlib/google for both Xcode and CMake builds. Small change to this wrapper for the WinCairo build's system zlib, which doesn't define z_const. * .gitignore: * ANGLE.plist: * ANGLE.xcodeproj/project.pbxproj: * CMakeLists.txt: * Configurations/ANGLE-dynamic.xcconfig: * Configurations/ANGLE-static.xcconfig: * GLESv2.cmake: * PlatformWin.cmake: * third_party/zlib/google/compression_utils_portable.cc: Added. * third_party/zlib/google/compression_utils_portable.h: Added. 2020-07-28 Kenneth Russell Pause during ANGLE roll script after rebasing and before deleting temporary Git repo https://bugs.webkit.org/show_bug.cgi?id=212717 Reviewed by Dean Jackson. Give the user the opportunity to manually examine the changes relative to upstream ANGLE, and to undo any accidental or undesired ones, before finishing the roll. * update-angle.sh: 2020-07-22 Conrad Shultz Update macOS Version macros https://bugs.webkit.org/show_bug.cgi?id=214653 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebKitTargetConditionals.xcconfig: 2020-07-17 Kenneth Russell [WebGL2] Fix validation of pixel unpack parameters https://bugs.webkit.org/show_bug.cgi?id=214509 Reviewed by Dean Jackson. Fix small error discovered while upstreaming the previous fix to the ANGLE project. * src/libANGLE/validationES3.cpp: (gl::ValidateES3TexImageParametersBase): 2020-07-17 Kenneth Russell [WebGL2] ReadPixels updates https://bugs.webkit.org/show_bug.cgi?id=209516 Reviewed by Dean Jackson. Add workaround for OpenGL driver bug on macOS where GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored. Add WebGL 2.0-specific validation constraints for pixel pack and unpack parameters. These changes are being upstreamed to ANGLE in http://crbug.com/angleproject/4849 . * include/platform/FeaturesGL.h: * src/libANGLE/ErrorStrings.h: * src/libANGLE/renderer/gl/FramebufferGL.cpp: (rx::FramebufferGL::readPixels): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): * src/libANGLE/validationES.cpp: (gl::ValidatePixelPack): * src/libANGLE/validationES3.cpp: (gl::ValidateES3TexImageParametersBase): 2020-07-10 Kenneth Russell Remove glBindFramebuffer flush workaround from ANGLE https://bugs.webkit.org/show_bug.cgi?id=214104 Reviewed by Dean Jackson. Remove this driver bug workaround, which very likely had no effect, and which was never upstreamed to ANGLE. * include/platform/FeaturesGL.h: * src/libANGLE/renderer/gl/StateManagerGL.cpp: (rx::StateManagerGL::bindFramebuffer): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-07-08 Darin Adler Fix adjust-angle-include-paths.sh error seen building ANGLE library https://bugs.webkit.org/show_bug.cgi?id=214059 Reviewed by Alexey Proskuryakov. * ANGLE.xcodeproj/project.pbxproj: Remove the build step that adjusts paths. Dean Jackson told me we don't need it for the static library target. 2020-06-30 Andy Estes [Xcode] Enable the "My Mac (Mac Catalyst)" destination in WebKit Xcode projects https://bugs.webkit.org/show_bug.cgi?id=213740 Reviewed by Darin Adler. * Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this project supports building for Mac Catalyst. 2020-06-22 Tim Horton Update macOS version macros https://bugs.webkit.org/show_bug.cgi?id=213484 Reviewed by Alexey Proskuryakov. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebKitTargetConditionals.xcconfig: 2020-06-22 Tim Horton WebGL cannot create a context if there is no GPU on the PCIe bus https://bugs.webkit.org/show_bug.cgi?id=213479 Reviewed by Maciej Stachowiak and Dean Jackson. * src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo): Do not bail from WebGL initialization if there are no GPUs on the PCIe bus. Instead, continue on to context creation, and allow the system frameworks to return an error if there truly is no GPU. 2020-06-19 Jonathan Bedard [ANGLE] Correct Catalyst guards https://bugs.webkit.org/show_bug.cgi?id=211410 Reviewed by Dean Jackson. * src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Do not compile on Mac. * src/libANGLE/renderer/gl/eagl/DeviceEAGL.h: Definitions should not be available on Mac. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Definitions should not be available on Mac. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Do not compile on Mac. 2020-06-10 Dean Jackson Add a dynamic library target for ANGLE https://bugs.webkit.org/show_bug.cgi?id=207591 Reviewed by Tim Horton. In preparation for moving to a dynamic library, start by compiling and linking it. It isn't used anywhere but getting it into the build will help Apple's build system remain happy as we migrate, as well as have the system know it exists for building the shared system cache. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE-dynamic.xcconfig: Added. * Configurations/ANGLE-static.xcconfig: Added. * Configurations/ANGLE.xcconfig: Removed. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2020-06-07 James Darpinian [ANGLE - iOS] fast/canvas/webgl/uninitialized-test.html is still failing https://bugs.webkit.org/show_bug.cgi?id=212249 Reviewed by Dean Jackson. copyTexImage2D is broken in some way on iOS. Work around it by reimplementing it with ANGLE's BlitGL class. * include/platform/FeaturesGL.h: * src/libANGLE/renderer/gl/BlitGL.cpp: (rx::BlitGL::blitColorBufferWithShader): * src/libANGLE/renderer/gl/BlitGL.h: * src/libANGLE/renderer/gl/TextureGL.cpp: (rx::TextureGL::copyImage): (rx::TextureGL::copySubImage): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): * src/tests/gl_tests/CopyTexImageTest.cpp: * src/tests/gl_tests/TextureTest.cpp: * src/tests/test_utils/angle_test_configs.cpp: (angle::operator<<): * src/tests/test_utils/angle_test_configs.h: (angle::WithEmulateCopyTexImage2DFromRenderbuffers): * util/EGLPlatformParameters.h: (EGLPlatformParameters::tie const): * util/EGLWindow.cpp: (EGLWindow::initializeDisplay): 2020-06-04 Tim Horton Work around broken system version macro https://bugs.webkit.org/show_bug.cgi?id=212726 Reviewed by Dan Bernstein. * Configurations/DebugRelease.xcconfig: 2020-06-02 Keith Rollin Change ANGLE's header postprocessing script to not rely on timestamps https://bugs.webkit.org/show_bug.cgi?id=212623 Reviewed by David Kilzer. Reviewed by Kennneth Russell. Some WebKit builds involve multiple passes, where each pass is a superset of the previous pass. In the cases where each pass produces the same files, it is required that files be produced in exactly the same way in each of those passes. A build process that relies on a file containing a timestamp trips up that prerequisite. adjust-angle-include-paths.sh uses such a mechanism, using a timestamp file to determine if any exported headers need to be post-processed. Since this violates our prerequisite, we need a different approach. Instead of using a timestamp, always perform the post-processing, but write the output to a temporary location. Then see if it differs from what's in the actual final destination. If the two files diff, then copy the one from the temporary location to the final destination. This approach does cause more work in the area of post-processing. However, this post-processing is actually very cheap. And avoiding the post-processing is not actually the original goal of the timestamp. The actual goal is to avoid touching the modification dates of the exported headers, which would then cause a lot of downstream rebuilding. The new approach with the temporary files also achieves that goal. * CMakeLists.txt: * adjust-angle-include-paths.sh: 2020-06-02 Kenneth Russell Revise PVRTC compressed texture validation in ANGLE backend for WebGL https://bugs.webkit.org/show_bug.cgi?id=212612 Reviewed by Dean Jackson. Correct the block sizes of PVRTC textures, and incorporate minimum block sizes for width and height, as required by these formats. * src/libANGLE/formatutils.cpp: (gl::BuildInternalFormatInfoMap): (gl::InternalFormat::computeCompressedImageSize const): (gl::InternalFormat::getCompressedImageMinBlocks const): * src/libANGLE/formatutils.h: 2020-05-29 Keith Rollin Revert switch to XCBuild https://bugs.webkit.org/show_bug.cgi?id=212530 Unreviewed build fix. Bug 209890 enabled the use of XCBuild by default. Since then, some build issues have shown up. While addressing them, temporarily turn off the use of XCBuild by default. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: 2020-05-27 Keith Rollin Enable the use of XCBuild by default in Apple builds https://bugs.webkit.org/show_bug.cgi?id=209890 Unreviewed build fix. Check the value of XCODE_VERSION_ACTUAL rather than XCODE_VERSION_MAJOR when determining whether to use the XCBuild or non-XCBuild method of running header post-processing scripts. * ANGLE.xcodeproj/project.pbxproj: 2020-05-26 Keith Rollin Enable the use of XCBuild by default in Apple builds https://bugs.webkit.org/show_bug.cgi?id=209890 Reviewed by Darin Adler. Switch from the "legacy" Xcode build system to the "new" build system (also known as "XCBuild"). Switching to the new system speeds up builds by a small percentage, better validates projects for build-related issues (such as dependency cycles), lets WebKit benefit from future improvements in XCBuild such as those coming from the underlying llbuild open source project, and prepares us for any other tools built for this new ecosystem. Specific changes: - Remove Xcode project and workspace settings that selected the Build system, allowing the default to take hold (which is currently the New build system). - Updated webkitdirs.pm with a terser check for Xcode version. - Update build-webkit and Makefile.shared to be explicit when using the old build system (no longer treat it as a default or fall-back configuration). - Update various xcconfig files similarly to treat the default as using the new build system. - Update various post-processing build steps to check for Xcode 11.4 and to no longer treat the default as using the old build system. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: 2020-05-22 Kenneth Russell [ANGLE - iOS] webgl/1.0.3/conformance/extensions/ext-sRGB.html is failing https://bugs.webkit.org/show_bug.cgi?id=212277 Reviewed by Dean Jackson. Properly translate GL_EXT_sRGB enums to ES 3.0 enums when GL_EXT_sRGB is not supported. * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::GetNativeInternalFormat): (rx::nativegl::GetNativeFormat): 2020-05-22 Kenneth Russell [ANGLE - iOS] fast/canvas/webgl/webgl-depth-texture.html is failing https://bugs.webkit.org/show_bug.cgi?id=212271 Reviewed by Dean Jackson. Use ES 3.0 sized internal formats for unsized depth/stencil textures when the OES_depth_texture extension is unavailable - as is the case in iOS's ES 3.0 driver. * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::GetNativeInternalFormat): 2020-05-21 Dean Jackson PVRTC compressed textures are failing with ANGLE backend https://bugs.webkit.org/show_bug.cgi?id=212240 Reviewed by Ken Russell (representing ANGLE). The values used for the PVRTC formats were incorrect. * src/libANGLE/formatutils.cpp: (gl::BuildInternalFormatInfoMap): 2020-05-21 Kenneth Russell Roll ANGLE to 2020-05-21 https://bugs.webkit.org/show_bug.cgi?id=212228 Reviewed by Dean Jackson. Roll ANGLE to 96a80283cc0fe604d03c0bc0b3f9eb100edd22f9 in the upstream repository using jdarpinian's excellent update-angle.sh script. Manually undo the fix from Bug 210992, which was fixed differently upstream. 2020-05-21 Kenneth Russell EXT_color_buffer_half_float not exposed on iOS https://bugs.webkit.org/show_bug.cgi?id=212181 Reviewed by Dean Jackson. Remove OES_texture_half_float requirement for advertising EXT_color_buffer_half_float in ANGLE. This is implicit in ES 3.0. * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::BuildInternalFormatInfoMap): 2020-05-20 Kenneth Russell OES_texture_half_float_linear unavailable on WebGL 1.0 on iOS with ANGLE https://bugs.webkit.org/show_bug.cgi?id=212170 Reviewed by Dean Jackson. Now that FP16 luminance/alpha texture formats are correctly emulated on ES 3.0, advertise them as filterable. * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::BuildInternalFormatInfoMap): 2020-05-20 Kenneth Russell OES_texture_float / OES_texture_half_float unavailable in WebGL 1.0 on iOS Simulator with ANGLE https://bugs.webkit.org/show_bug.cgi?id=210524 Reviewed by Dean Jackson. Emulate LUMINANCE, ALPHA and LUMINANCE_ALPHA floating-point textures on top of RED / RG textures when the underlying OES_texture_float/half_float OpenGL ES extensions are unavailable. This makes the conformance/extensions/oes-texture{-half}-float* tests run and pass in the iOS Simulator. This change is being reviewed upstream in the ANGLE repository and is only being uploaded here for testing purposes. It will be rolled in with the next ANGLE update. * src/libANGLE/renderer/gl/TextureGL.cpp: (rx::TextureGL::setSwizzle): * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::BuildInternalFormatInfoMap): (rx::nativegl::IsLUMAFormat): (rx::nativegl::EmulateLUMAFormat): (rx::nativegl::EmulateLUMA): (rx::nativegl::GetNativeInternalFormat): (rx::nativegl::GetNativeFormat): (rx::nativegl::GetNativeType): (rx::nativegl::GetTexImageFormat): (rx::nativegl::GetTexSubImageFormat): 2020-05-18 James Darpinian Enable regenerateStructNames workaround on iOS https://bugs.webkit.org/show_bug.cgi?id=212056 Reviewed by Dean Jackson. The WebGL conformance test conformance/glsl/misc/shader-struct-scope.html was failing on iOS. The workaround that fixes this test was enabled only on desktop GL, but it's necessary for iOS as well. * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-05-14 James Darpinian REGRESSION (r259589): Google Maps background layer fades out and back in https://bugs.webkit.org/show_bug.cgi?id=210992 Reviewed by Dean Jackson. ANGLE rendering feedback loop detection was incorrect if a texture attached to a framebuffer was also bound to an active texture unit, and then that texture unit became inactive because a sampler uniform was set. * src/libANGLE/Context.cpp: (gl::Context::onSamplerUniformChange): * src/libANGLE/State.cpp: (gl::State::setTextureIndexInactive): * src/libANGLE/State.h: 2020-05-14 Kenneth Russell Update ANGLE to 2020-03-27 https://bugs.webkit.org/show_bug.cgi?id=209689 Reviewed by Darin Adler. Re-applying this patch now that we have a fix for 210992. Use update-angle.sh script by James Darpinian to roll ANGLE to commit b387ce9389ede6a4ed3b831ab1b8187927fa295f in https://chromium.googlesource.com/angle/angle . changes.diff has been auto-updated with Apple's diffs relative to upstream. No additional manual changes are made in this roll. Long autogenerated file list omitted. 2020-05-08 David Kilzer Remove empty directories from from svn.webkit.org repository Reviewed by Darin Adler. * include/vulkan: Removed. * src/android_system_settings: Removed. * third_party/glmark2: Removed. * tools/flex-bison: Removed. 2020-05-07 James Darpinian Fix Google Maps rendering corruption in simulator with ANGLE https://bugs.webkit.org/show_bug.cgi?id=211398 glReadPixels call needs to respect the row stride of the IOSurface. Reviewed by Alex Christensen. * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: (rx::IOSurfaceSurfaceEAGL::IOSurfaceSurfaceEAGL): (rx::IOSurfaceSurfaceEAGL::releaseTexImage): 2020-05-07 Dean Jackson Update ANGLE to 2020-03-27 https://bugs.webkit.org/show_bug.cgi?id=209689 Reverting r259589. It caused https://bugs.webkit.org/show_bug.cgi?id=210992 2020-05-05 Saam Barati Unreviewed, reverting r261176. It broke the build Reverted changeset: "[ANGLE] Declarations should match definitions" https://bugs.webkit.org/show_bug.cgi?id=211410 https://trac.webkit.org/changeset/261176 2020-05-05 Jonathan Bedard [ANGLE] Declarations should match definitions https://bugs.webkit.org/show_bug.cgi?id=211410 Reviewed by Alex Christensen. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Skip definitions for platforms where class is undefined. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::generateConfigs): Function is not defined for for MacCatalyst. * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: Skip definitions for platforms where class is undefined. * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: Skip definitions for platforms where class is undefined. * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: 2020-04-28 ChangSeok Oh [GTK] Fix build failures for ANGLE_WEBGL after r259589 https://bugs.webkit.org/show_bug.cgi?id=211116 Reviewed by Alex Christensen. The ANGLE_WEBGL is broken after ANGLE is updated in r259589. Missing sources should be added to the build target. * PlatformGTK.cmake: Add libangle_gl_egl_sources and libangle_gl_egl_dl_sources. 2020-04-27 Dean Jackson Temporarily skip GL_DEPTH_COMPONENT32_OES requirement for depth textures on iOS https://bugs.webkit.org/show_bug.cgi?id=211055 Reviewed by Darin Adler. ANGLE requires GL_DEPTH_COMPONENT32_OES be available in order to expose the depth texture extension. However, this format is not supported on iOS. Temporarily remove this restriction while investigating other bugs. This also allows us to see the failing results in fast/canvas/webgl/webgl-depth-texture.html webgl/1.0.3/conformance/extensions/webgl-depth-texture.html * src/libANGLE/Caps.cpp: (gl::DetermineDepthTextureANGLESupport): (gl::DetermineDepthTextureOESSupport): 2020-04-25 Darin Adler [Cocoa] Deal with another round of Xcode upgrade checks https://bugs.webkit.org/show_bug.cgi?id=211027 Reviewed by Alexey Proskuryakov. * ANGLE.xcodeproj/project.pbxproj: Bump the upgrade check version. Add a harmless base localization, rename English localization to en, remove Japanese, French, German; this project contains nothing localized. 2020-04-08 Truitt Savell Unreviewed, reverting r259708. Broke the iOS device Build Reverted changeset: "Enable the use of XCBuild by default in Apple builds" https://bugs.webkit.org/show_bug.cgi?id=209890 https://trac.webkit.org/changeset/259708 2020-04-08 Keith Rollin Enable the use of XCBuild by default in Apple builds https://bugs.webkit.org/show_bug.cgi?id=209890 Reviewed by Darin Adler. Switch from the "legacy" Xcode build system to the "new" build system (also known as "XCBuild"). Switching to the new system speeds up builds by a small percentage, better validates projects for build-related issues (such as dependency cycles), lets WebKit benefit from future improvements in XCBuild such as those coming from the underlying llbuild open source project, and prepares us for any other tools built for this new ecosystem. Specific changes: - Remove Xcode project and workspace settings that selected the Build system, allowing the default to take hold (which is currently the New build system). - Updated webkitdirs.pm with a terser check for Xcode version. - Update build-webkit and Makefile.shared to be explicit when using the old build system (no longer treat it as a default or fall-back configuration). - Update various xcconfig files similarly to treat the default as using the new build system. - Update various post-processing build steps to check for Xcode 11.4 and to no longer treat the default as using the old build system. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: 2020-04-06 Kenneth Russell Update ANGLE to 2020-03-27 https://bugs.webkit.org/show_bug.cgi?id=209689 Reviewed by Darin Adler. Use update-angle.sh script by James Darpinian to roll ANGLE to commit b387ce9389ede6a4ed3b831ab1b8187927fa295f in https://chromium.googlesource.com/angle/angle . changes.diff has been auto-updated with Apple's diffs relative to upstream. No additional manual changes are made in this roll. Long autogenerated file list omitted. 2020-04-03 Kenneth Russell Fix bugs related to VideoTextureCopierCV and ANGLE roll script https://bugs.webkit.org/show_bug.cgi?id=209943 Reviewed by Dean Jackson. Update the update-angle.sh script to take into account the new procedure for generating ANGLE's commit ID header file. This enables ANGLE rolls into WebKit again. * update-angle.sh: 2020-04-03 Keith Rollin Do not link with OpenGL on Apple platforms https://bugs.webkit.org/show_bug.cgi?id=209946 Reviewed by Sam Weinig. OpenGL is not used in our build of ANGLE. Attempting to link with it causes warnings, which can turn into errors in some cases (in particular, when building with Xcode's "new" build system). * ANGLE.xcodeproj/project.pbxproj: 2020-04-03 David Kilzer [Xcode] Replace ASAN_OTHER_CFLAGS and ASAN_OTHER_CPLUSPLUSFLAGS with $(inherited) Reviewed by Alexey Proskuryakov. * ANGLE.xcodeproj/project.pbxproj: * Configurations/Base.xcconfig: - Remove ASAN_OTHER_CFLAGS, ASAN_OTHER_CPLUSPLUSFLAGS and ASAN_OTHER_LDFLAGS. 2020-03-27 Kenneth Russell Use ANGLE_robust_client_memory to replace framebuffer/texture validation https://bugs.webkit.org/show_bug.cgi?id=209098 Reviewed by Dean Jackson. Incorporated fix from anglebug.com/4504 to make fast/canvas/webgl/uninitialized-test.html pass. Incorporated fix from anglebug.com/4518 to make: webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html webgl/2.0.0/conformance2/rendering/rgb-format-support.html webgl/2.0.0/conformance2/state/gl-object-get-calls.html webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html pass. * src/libANGLE/Texture.cpp: (gl::Texture::copySubImage): (gl::Texture::ensureSubImageInitialized): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-03-21 Keith Rollin Set INSTALLHDRS_SCRIPT_PHASE in ANGLE builds https://bugs.webkit.org/show_bug.cgi?id=209384 Reviewed by Dan Bernstein. Production ANGLE builds are technically non-compliant. During the installhdrs build action, ANGLE headers are exported but are not post-processed. This differs from the install build action, where the exported headers *are* post-processed. The headers need to be treated identically under both actions. The post-processing is enabled by setting the INSTALLHDRS_SCRIPT_PHASE build setting to YES. Most other WebKit projects already set this setting (see, for example, https://trac.webkit.org/changeset/155787, https://trac.webkit.org/changeset/110327, and https://trac.webkit.org/changeset/41417). * Configurations/ANGLE.xcconfig: 2020-03-15 Michael Catanzaro [ANGLE] Source/ThirdParty/ANGLE/src/common/utilities.cpp:10: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas] https://bugs.webkit.org/show_bug.cgi?id=209014 Reviewed by Darin Adler. Silence compiler warning. * changes.diff: * src/common/utilities.cpp: 2020-03-15 Michael Catanzaro [ANGLE] Source/ThirdParty/ANGLE/src/libANGLE/Display.h:221:73: warning: implicitly-declared ‘egl::AttributeMap& egl::AttributeMap::operator=(const egl::AttributeMap&)’ is deprecated [-Wdeprecated-copy] https://bugs.webkit.org/show_bug.cgi?id=209015 Reviewed by Darin Adler. Suppress compiler warning. If this were WebKit code, I might take the time to fix it, but with third-party code it's probably best to just turn off warnings that upstream is not using. * CMakeLists.txt: 2020-03-02 Alan Coon Add new Mac target numbers https://bugs.webkit.org/show_bug.cgi?id=208398 Reviewed by Alexey Proskuryakov. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebKitTargetConditionals.xcconfig: 2020-02-12 Michael Catanzaro Multiple GCC 10 build failures in ANGLE https://bugs.webkit.org/show_bug.cgi?id=207365 Reviewed by Carlos Alberto Lopez Perez. * changes.diff: Updated. * include/platform/Platform.h: Add missing #include to get size_t. * src/common/PackedEnums.h: Remove problematic const_casts. 2020-02-12 Dean Jackson ANGLE has unused bison and glmark2 code https://bugs.webkit.org/show_bug.cgi?id=207597 rdar://59361460 Reviewed by Maciej Stachowiak. Remove some unused files. * changes.diff: * src/tests/perf_tests/glmark2Benchmark.cpp: Removed. * third_party/glmark2/BUILD.gn: Removed. * third_party/glmark2/README.angle: Removed. * tools/flex-bison/README.md: Removed. * tools/flex-bison/linux/bison.sha1: Removed. * tools/flex-bison/linux/flex.sha1: Removed. * tools/flex-bison/third_party/.gitattributes: Removed. * tools/flex-bison/third_party/m4sugar/LICENSE: Removed. * tools/flex-bison/third_party/m4sugar/README.chromium: Removed. * tools/flex-bison/third_party/m4sugar/foreach.m4: Removed. * tools/flex-bison/third_party/m4sugar/m4sugar.m4: Removed. * tools/flex-bison/third_party/skeletons/LICENSE: Removed. * tools/flex-bison/third_party/skeletons/README.chromium: Removed. * tools/flex-bison/third_party/skeletons/bison.m4: Removed. * tools/flex-bison/third_party/skeletons/c-like.m4: Removed. * tools/flex-bison/third_party/skeletons/c.m4: Removed. * tools/flex-bison/third_party/skeletons/yacc.c: Removed. * tools/flex-bison/update_flex_bison_binaries.py: Removed. * tools/flex-bison/windows/bison.exe.sha1: Removed. * tools/flex-bison/windows/flex.exe.sha1: Removed. * tools/flex-bison/windows/m4.exe.sha1: Removed. * tools/flex-bison/windows/msys-2.0.dll.sha1: Removed. * tools/flex-bison/windows/msys-iconv-2.dll.sha1: Removed. * tools/flex-bison/windows/msys-intl-8.dll.sha1: Removed. 2020-02-09 Keith Rollin Re-enable LTO for ARM builds https://bugs.webkit.org/show_bug.cgi?id=207402 Reviewed by Sam Weinig. Bug 190758 re-enabled LTO for Production builds for x86-family CPUs. Enabling it for ARM was left out due to a compiler issue. That issue has been fixed, and so now we can re-enable LTO for ARM. * Configurations/Base.xcconfig: 2020-02-07 Kenneth Russell Try adding glBindFramebuffer flush workaround to ANGLE as remedy for flaky WebGL tests https://bugs.webkit.org/show_bug.cgi?id=206625 Reviewed by Dean Jackson. * include/platform/FeaturesGL.h: * src/libANGLE/renderer/gl/StateManagerGL.cpp: (rx::StateManagerGL::bindFramebuffer): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-02-05 Dean Jackson Fix MacCatalyst build. * src/libANGLE/validationEGL.cpp: (egl::ValidateCreatePbufferFromClientBuffer): 2020-02-04 James Darpinian Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=206318 Several important changes to fix layout test failures and timeouts in this update. - Made expensive validation non-default in debug mode to reduce timeouts. - Optimize disabling ARB_texture_rectangle to make shader compilation much faster. - Flush before texture deletion to work around Mac Intel driver bug. Reviewed by Dean Jackson. * ANGLE.plist: update commit hash * ANGLE.xcodeproj/project.pbxproj: Add/remove files * Compiler.cmake: Translated from compiler.gni * GLESv2.cmake: Translated from libGLESv2.gni * changes.diff: Now lists all changes from upstream. * update-angle.sh: Diff command was wrong. * Plus a whole lot of changes from upstream. 2020-01-30 James Darpinian Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=206318 Take two! Several important changes to fix layout test failures and timeouts in this update. - Made expensive validation non-default in debug mode to reduce timeouts. - Optimize disabling ARB_texture_rectangle to make shader compilation much faster. - Flush before texture deletion to work around Mac Intel driver bug. Reviewed by Dean Jackson. * ANGLE.plist: update commit hash * ANGLE.xcodeproj/project.pbxproj: Add/remove files * Compiler.cmake: Translated from compiler.gni * GLESv2.cmake: Translated from libGLESv2.gni * changes.diff: Now lists all changes from upstream. * update-angle.sh: Diff command was wrong. * Plus a whole lot of changes from upstream. 2020-01-22 James Darpinian Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=206318 Several important changes to fix layout test failures and timeouts in this update. - Made expensive validation non-default in debug mode to reduce timeouts. - Optimize disabling ARB_texture_rectangle to make shader compilation much faster. - Flush before texture deletion to work around Mac Intel driver bug. Reviewed by Dean Jackson. * ANGLE.plist: update commit hash * ANGLE.xcodeproj/project.pbxproj: Add/remove files * Compiler.cmake: Translated from compiler.gni * GLESv2.cmake: Translated from libGLESv2.gni * changes.diff: Now lists all changes from upstream. * update-angle.sh: Diff command was wrong. * Plus a whole lot of changes from upstream. 2020-01-22 James Darpinian REGRESSION (r253926): webgl/1.0.3/conformance/rendering/many-draw-calls.html is much slower, times out in debug https://bugs.webkit.org/show_bug.cgi?id=205668 Disable asserts when compiling ANGLE in release mode by defining NDEBUG. Reviewed by Dean Jackson. * Configurations/ANGLE.xcconfig: 2020-01-14 Dean Jackson Build ANGLE as a dynamic library https://bugs.webkit.org/show_bug.cgi?id=204708 rdar://57349384 Rolling this out for the 2nd time. - it caused issues with the shared dyld cache, because the cache doesn't know to include the libary until it already exists in the build - probably related to the above, we saw some performance regressions directly related to this change * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * include/CMakeLists.txt: * include/GLSLANG/ShaderLang.h: * include/GLSLANG/ShaderVars.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::isValidNativeWindow const): * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: (rx::WindowSurfaceCGL::WindowSurfaceCGL): (rx::WindowSurfaceCGL::~WindowSurfaceCGL): * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::isValidNativeWindow const): (rx::WorkerContextEAGL::~WorkerContextEAGL): * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (rx::WindowSurfaceEAGL::WindowSurfaceEAGL): (rx::WindowSurfaceEAGL::~WindowSurfaceEAGL): 2020-01-14 Kenneth Russell Need workaround for crash in Intel OpenGL driver related to texture copying feedback loops https://bugs.webkit.org/show_bug.cgi?id=205843 Remove ANGLE workaround introduced in bug 205707, as it was discovered to be incomplete, and was never upstreamed. The correct workaround will be integrated in the next ANGLE roll. Reviewed by Dean Jackson. * include/platform/FeaturesGL.h: * src/libANGLE/renderer/gl/StateManagerGL.cpp: (rx::StateManagerGL::bindFramebuffer): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-01-08 Kenneth Russell Remove some #ifdefs related to iOS port of ANGLE https://bugs.webkit.org/show_bug.cgi?id=205781 Since the port to the iOS Simulator in https://bugs.webkit.org/show_bug.cgi?id=205618 , these #ifdefs should no longer be needed. Reviewed by Dean Jackson. * src/common/PackedEnums.cpp: (egl_gl::EGLTextureTargetToTextureType): * src/libANGLE/validationES2.cpp: (gl::ValidateFramebufferTexture2D): 2020-01-05 Kenneth Russell REGRESSION (r253926): Flaky crashes on webgl/1.0.3/conformance/textures/texture-copying-feedback-loops.html and webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops.html https://bugs.webkit.org/show_bug.cgi?id=205707 Work around bugs in Intel's graphics driver where operations can be incorrectly reordered across glBindFramebuffer calls by flushing before/after these calls. Conclusively addresses this crash; may also address other layout test flakiness seen when switching to ANGLE backend for WebGL. Reviewed by Dean Jackson. * include/platform/FeaturesGL.h: * src/libANGLE/renderer/gl/StateManagerGL.cpp: (rx::StateManagerGL::bindFramebuffer): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures): 2020-01-04 Kenneth Russell Add support for iOS Simulator to ANGLE backend for WebGL https://bugs.webkit.org/show_bug.cgi?id=205618 Extend EGL_ANGLE_iosurface_client_buffer extension to require use of TEXTURE_2D target on iOS, and to provide read/write usage hints for the pbuffer created from the IOSurface. Emulate missing [EAGLContext texImageIOSurface:...] via texture upload in eglBindTexImage and readback in eglReleaseTexImage. These changes will be upstreamed in https://bugs.chromium.org/p/angleproject/issues/detail?id=4256 . Reviewed by Dean Jackson. * extensions/EGL_ANGLE_iosurface_client_buffer.txt: * include/EGL/eglext_angle.h: * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: (rx::IOSurfaceSurfaceEAGL::IOSurfaceSurfaceEAGL): (rx::IOSurfaceSurfaceEAGL::bindTexImage): (rx::IOSurfaceSurfaceEAGL::releaseTexImage): (rx::IOSurfaceSurfaceEAGL::validateAttributes): (rx::IOSurfaceSurfaceEAGL::createDefaultFramebuffer): (rx::IOSurfaceSurfaceEAGL::getIOSurfaceLockOptions const): * src/libANGLE/validationEGL.cpp: (egl::ValidateCreatePbufferFromClientBuffer): 2019-12-25 Dean Jackson [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator) https://bugs.webkit.org/show_bug.cgi?id=205483 rdar://56925821 Reviewed by Simon Fraser. Export entry_points_gles_ext_autogen.h. * ANGLE.xcodeproj/project.pbxproj: 2019-12-19 Dean Jackson Build ANGLE as a dynamic library https://bugs.webkit.org/show_bug.cgi?id=204708 rdar://57349384 Reviewed by Tim Horton. Take 2 at attempting this. The first time was rolled out due to failures in Apple's upstream build system. Modify ANGLE to build as a dynamic library. My (not thorough) testing suggests this will reduce the in-flight binary size on Apple's build systems by at least a factor of 10 (it was over 1G). Building release for x86_64-only: - Previously: libANGLE.a -- 306 MB - Now: libANGLE-shared.dylib -- 6.7 MB In order to do this, some symbols needed to be exported from the "sh" namespace (which are used in ANGLEWebKitBridge, but not when ANGLE's rendering backend is active). While here, I turned on some more build options, like ARC. Lastly, I added a build phase that creates a fake libANGLE.a because Apple's build system thinks that WebCore still needs it. * ANGLE.xcodeproj/project.pbxproj: Link with IOKit and IOSurface frameworks, and product a dylib product. * Configurations/ANGLE.xcconfig: Update the configuration for a dynamic library. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * include/GLSLANG/ShaderLang.h: Add ANGLE_EXPORT to some functions to make sure they will be visible in the exported library. * include/GLSLANG/ShaderVars.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Change reinterpret_cast to a normal C cast so it can be annotated with __bridge. (rx::DisplayCGL::isValidNativeWindow const): * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Ditto. (rx::WindowSurfaceCGL::WindowSurfaceCGL): (rx::WindowSurfaceCGL::~WindowSurfaceCGL): * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Ditto. * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: Ditto. 2019-12-19 ChangSeok Oh [GTK] Build fix for ANGLE_WEBGL after r253650 https://bugs.webkit.org/show_bug.cgi?id=205426 Reviewed by Carlos Alberto Lopez Perez. libglesv2_entry_points_headers was removed in r253650 that updated CMake for ANGLE. GLESv2.cmake seems to be susceptible to ANGLE changes, so it might not be a good place where any platform specific configuration is located. Let's move the entry points header set to CMakeLists.txt. * CMakeLists.txt: 2019-12-18 Dean Jackson Reverting libANGLE.a -> libANGLE-shared.dylib. Follow-up to remove the build phase that was trying to fool Apple's build system. * ANGLE.xcodeproj/project.pbxproj: 2019-12-18 Dean Jackson Reverting libANGLE.a -> libANGLE-shared.dylib. The internal Apple build systems are still unhappy with this change, so I'm reverting it until I can be sure they'll accept it. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * include/CMakeLists.txt: * include/GLSLANG/ShaderLang.h: * include/GLSLANG/ShaderVars.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::isValidNativeWindow const): * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: (rx::WindowSurfaceCGL::WindowSurfaceCGL): (rx::WindowSurfaceCGL::~WindowSurfaceCGL): * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::isValidNativeWindow const): (rx::WorkerContextEAGL::~WorkerContextEAGL): * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (rx::WindowSurfaceEAGL::WindowSurfaceEAGL): (rx::WindowSurfaceEAGL::~WindowSurfaceEAGL): 2019-12-17 Fujii Hironori Unreviewed build fix for WinCairo port https://bugs.webkit.org/show_bug.cgi?id=204914 * include/CMakeLists.txt: Replaced '$libangle_includes' with '${libangle_includes}". 2019-12-17 James Darpinian Improve update-angle.sh and add gni-to-cmake.py https://bugs.webkit.org/show_bug.cgi?id=204914 update-angle.sh now performs a git rebase. This automatically merges upstream changes with WebKit's local changes where possible and highlights any conflicts for manual resolution. Also, it runs a new script gni-to-cmake.py to automatically update the CMake files with upstream changes to the gni files. Along with the changes to include/CMakeLists.txt, this should prevent build breaks like the recently fixed WinCairo one. Additionally, diffing the CMake files provides a concise list of build changes that can be referenced when manually updating the XCode project file. Reviewed by Dean Jackson. * CMakeLists.txt: * Compiler.cmake: * GLESv2.cmake: * gni-to-cmake.py: Added. * include/CMakeLists.txt: * update-angle.sh: 2019-12-17 ChangSeok Oh Unreviewed build fix for USE_ANGLE_WEBGL after r252994 * CMakeLists.txt: Add a missing directory separator. 2019-12-13 Dean Jackson MacCatalyst build of libANGLE is installed in the incorrect location https://bugs.webkit.org/show_bug.cgi?id=205219 Reviewed by Simon Fraser. Rename libANGLE.dylib into libANGLE-shared.dylib, so we can avoid accidentally trying to link to the libANGLE.a that was removed recently (but still exists in the SDK for now). Also, make sure that we install into the correct location for a Catalyst build. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: * Configurations/Base.xcconfig: 2019-12-11 Dean Jackson Produce a dummy libANGLE.a file to fool Apple's build test infrastructure https://bugs.webkit.org/show_bug.cgi?id=205068 Unreviewed followup to apply the script to Mac Catalyst builds. Note that this phase can be removed in a few days when Apple's Test Platform realises it doesn't need libANGLE.a any more. * ANGLE.xcodeproj/project.pbxproj: 2019-12-10 Dean Jackson Produce a dummy libANGLE.a file to fool Apple's build test infrastructure https://bugs.webkit.org/show_bug.cgi?id=205068 Reviewed by Alex Christensen. Create a dummy libANGLE.a file until our infrastructure realises it doesn't need that file any more. Hopefully the fact that it isn't really a static library, but just a text file, is ok. * ANGLE.xcodeproj/project.pbxproj: Add a new shell script phase that creates a dummy file. 2019-12-06 Dean Jackson Restrict libANGLE to link only with WebCore https://bugs.webkit.org/show_bug.cgi?id=204957 Reviewed by Brian Burg. Restrict to WebCore and WebCoreTestSupport. * Configurations/ANGLE.xcconfig: 2019-12-05 James Darpinian Finish ANGLE update https://bugs.webkit.org/show_bug.cgi?id=204911 The last ANGLE update patch didn't include all the changed files. This patch updates the rest of the files. Reviewed by Alex Christensen. * src/tests: Lots of changed files from upstream ANGLE. * src/third_party/compiler/README.chromium: * third_party/VK-GL-CTS/README.angle: Added. * third_party/deqp/README.angle: Removed. * third_party/googletest/README.angle: Removed. * third_party/libpng/BUILD.gn: * third_party/spirv-cross/README.angle: Added. * util/OSWindow.h: * util/egl_loader_autogen.cpp: (angle::LoadEGL): * util/egl_loader_autogen.h: * util/fuchsia/ScenicWindow.cpp: (ScenicWindow::resetNativeWindow): * util/fuchsia/ScenicWindow.h: * util/gles_loader_autogen.cpp: (angle::LoadGLES): * util/gles_loader_autogen.h: * util/osx/OSXWindow.h: * util/osx/OSXWindow.mm: (OSXWindow::initialize): * util/ozone/OzoneWindow.h: * util/posix/crash_handler_posix.cpp: (angle::InitCrashHandler): * util/posix/test_utils_posix.cpp: (angle::GetTempDir): (angle::CreateTemporaryFileInDir): (angle::DeleteFile): (angle::LaunchProcess): (angle::NumberOfProcessors): * util/shader_utils.cpp: (CompileShaderFromFile): (CompileProgramFromFiles): * util/test_utils.cpp: Added. (angle::CreateTemporaryFile): (angle::GetFileSize): (angle::ReadEntireFileToString): (angle::ProcessHandle::ProcessHandle): (angle::ProcessHandle::~ProcessHandle): (angle::ProcessHandle::operator=): (angle::ProcessHandle::reset): * util/test_utils.h: * util/test_utils_unittest.cpp: Added. (angle::NormalizeNewLines): (angle::TEST): * util/test_utils_unittest_helper.cpp: Added. (main): * util/test_utils_unittest_helper.h: Added. * util/util.gni: * util/windows/WGLWindow.cpp: * util/windows/test_utils_win.cpp: (angle::InitCrashHandler): (angle::TerminateCrashHandler): (angle::LaunchProcess): (angle::GetTempDir): (angle::CreateTemporaryFileInDir): (angle::DeleteFile): (angle::NumberOfProcessors): * util/windows/win32/Win32Window.cpp: (Win32Window::initialize): * util/windows/win32/test_utils_win32.cpp: (angle::StabilizeCPUForBenchmarking): * util/x11/X11Window.h: 2019-12-02 Ross Kirsling Unreviewed WinCairo build fix following r252989. * include/CMakeLists.txt: 2019-12-02 Dean Jackson Clean up ANGLE header post-process script https://bugs.webkit.org/show_bug.cgi?id=204711 Reviewed by Tim Horton. Since `sed` on macOS requires the in-place argument to have a zero-length string to avoid making backups, this script was attempting to pass ''. However, this was being evaluated, creating a bunch of files with \'\' suffixes. Fix this by using an array when expanding the arguments. Also fix a typo where the character "3" was being printed. Lastly, only print out the basename of the header file being converted. * adjust-angle-include-paths.sh: 2019-11-30 Dean Jackson Build ANGLE as a dynamic library https://bugs.webkit.org/show_bug.cgi?id=204708 rdar://57349384 Reviewed by Tim Horton. Modify ANGLE to build as a dynamic library. My (not thorough) testing suggests this will reduce the in-flight binary size on Apple's build systems by at least a factor of 10 (it was over 1G). Building release for x86_64-only: - Previously: libANGLE.a -- 306 MB - Now: libANGLE.dylib -- 6.7 MB In order to do this, some symbols needed to be exported from the "sh" namespace (which are used in ANGLEWebKitBridge, but not when ANGLE's rendering backend is active). While here, I turned on some more build options, like ARC. * ANGLE.xcodeproj/project.pbxproj: Link with IOKit and IOSurface frameworks, and product a dylib product. * Configurations/ANGLE.xcconfig: Update the configuration for a dynamic library. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/Version.xcconfig: Added. * Configurations/WebKitTargetConditionals.xcconfig: Added. * include/GLSLANG/ShaderLang.h: Add ANGLE_EXPORT to some functions to make sure they will be visible in the exported library. * include/GLSLANG/ShaderVars.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Change reinterpret_cast to a normal C cast so it can be annotated with __bridge. (rx::DisplayCGL::isValidNativeWindow const): * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Ditto. (rx::WindowSurfaceCGL::WindowSurfaceCGL): (rx::WindowSurfaceCGL::~WindowSurfaceCGL): * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Ditto. * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: Ditto. 2019-12-02 James Darpinian Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=204595 Reviewed by Alex Christensen. * ANGLE.plist: Updated commit hash. * ANGLE.xcodeproj/project.pbxproj: Changes mirroring gn changes upstream. * Compiler.cmake: Changes mirroring gn changes upstream. * GLESv2.cmake: Changes mirroring gn changes upstream. * CMakeLists.txt: Changes mirroring gn changes upstream. * Many other files added/removed/changed from upstream. 2019-11-20 ChangSeok Oh [GTK] Add ANGLE backend to GTK port https://bugs.webkit.org/show_bug.cgi?id=199060 Reviewed by Žan Doberšek. * CMakeLists.txt: When USE_ANGLE_WEBGL is enabled, necessary glesv2 entry points headers are installed in the derived source directory. And then adjust-angle-include-path.sh is applied to change include paths in the entry points header files. * GLESv2.cmake: libglesv2_entry_points_headers is newly defined, which is a gathering of entry point headers of libGLESv2. * PlatformGTK.cmake: In this file, we append gl and glx related angle code as a build target. Since we want gl context and gles context simultaneously, we remove gl prototype calls from the generated libGLESv2 library. Instead, we invoke egl and gl calls of ANGLE via their non-prototype function names. * adjust-angle-include-paths.sh: sed is slightly different in unix and linux systems. In particular, its inplace option needs to be changed for better compatibility on linux. * include/CMakeLists.txt: ANGLE_WEBGL_HEADERS is newly defined. It gathers header files of ANGLE for WebGL support. 2019-11-08 Dean Jackson Add ANGLE backend for iOS device https://bugs.webkit.org/show_bug.cgi?id=202159 Build fix. Don't include IOSurface.h on iOS (public SDK doesn't have it). * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: 2019-11-07 Dean Jackson Add ANGLE backend for iOS device https://bugs.webkit.org/show_bug.cgi?id=202159 Reviewed by Myles Maxfield. Add an OpenGLES backend over EAGL for iOS to ANGLE. This is basically a copy of all the files in libANGLE/renderer/gl/cgl into libANGLE/renderer/gl/eagl, then with modifications to make it work on iOS's OpenGL ES. Most notably, some format enums and the manner in which you bind an IOSurface to a GL texture are different. This introduces a few places where we have to do a compile time switch for iOS, some of which might actually be applicable to other OpenGL ES backends. The biggest missing piece is support for the iOS simulator. At the moment this backend relies on an IOSurface binding as a rendering target. But the iOS Simulator does not have the required ability to have a GL ES texture backed by an IOSurface. The WindowSurfaceEAGL code is incomplete, but was not necessary in order to get WebGL operational. And even if you are using ANGLE directly, you can have the client code render into a CALayer without going through the WindowSurface. * ANGLE.xcodeproj/project.pbxproj: * include/EGL/eglext_angle.h: * src/common/PackedEnums.cpp: (egl_gl::EGLTextureTargetToTextureType): * src/common/platform.h: * src/gpu_info_util/SystemInfo_ios.cpp: Added. (angle::GetSystemInfo): * src/gpu_info_util/SystemInfo_macos.cpp: Renamed from Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_mac.cpp. (angle::GetSystemInfo): * src/libANGLE/Caps.h: * src/libANGLE/Display.cpp: * src/libANGLE/formatutils.cpp: (gl::BuildInternalFormatInfoMap): * src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp: (rx::IOSurfaceSurfaceCGL::bindTexImage): * src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp: * src/libANGLE/renderer/gl/cgl/RendererCGL.cpp: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: * src/libANGLE/renderer/gl/eagl/ContextEAGL.cpp: Added. (rx::ContextEAGL::ContextEAGL): * src/libANGLE/renderer/gl/eagl/ContextEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Added. (rx::DeviceEAGL::DeviceEAGL): (rx::DeviceEAGL::~DeviceEAGL): (rx::DeviceEAGL::initialize): (rx::DeviceEAGL::getAttribute): (rx::DeviceEAGL::getType): (rx::DeviceEAGL::generateExtensions const): * src/libANGLE/renderer/gl/eagl/DeviceEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Added. (rx::FunctionsGLEAGL::FunctionsGLEAGL): (rx::DisplayEAGL::DisplayEAGL): (rx::DisplayEAGL::~DisplayEAGL): (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::createWindowSurface): (rx::DisplayEAGL::createPbufferSurface): (rx::DisplayEAGL::createPbufferFromClientBuffer): (rx::DisplayEAGL::createPixmapSurface): (rx::DisplayEAGL::createContext): (rx::DisplayEAGL::createDevice): (rx::DisplayEAGL::generateConfigs): (rx::DisplayEAGL::testDeviceLost): (rx::DisplayEAGL::restoreLostDevice): (rx::DisplayEAGL::isValidNativeWindow const): (rx::DisplayEAGL::validateClientBuffer const): (rx::DisplayEAGL::getVendorString const): (rx::DisplayEAGL::getEAGLContext const): (rx::DisplayEAGL::getEAGLPixelFormat const): (rx::DisplayEAGL::generateExtensions const): (rx::DisplayEAGL::generateCaps const): (rx::DisplayEAGL::waitClient): (rx::DisplayEAGL::waitNative): (rx::DisplayEAGL::getMaxSupportedESVersion const): (rx::DisplayEAGL::makeCurrentSurfaceless): (rx::WorkerContextEAGL::WorkerContextEAGL): (rx::WorkerContextEAGL::~WorkerContextEAGL): (rx::WorkerContextEAGL::makeCurrent): (rx::WorkerContextEAGL::unmakeCurrent): (rx::DisplayEAGL::createWorkerContext): (rx::DisplayEAGL::initializeFrontendFeatures const): (rx::DisplayEAGL::populateFeatureList): * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: Copied from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp. (rx::IOSurfaceSurfaceEAGL::IOSurfaceSurfaceEAGL): (rx::IOSurfaceSurfaceEAGL::~IOSurfaceSurfaceEAGL): (rx::IOSurfaceSurfaceEAGL::initialize): (rx::IOSurfaceSurfaceEAGL::makeCurrent): (rx::IOSurfaceSurfaceEAGL::unMakeCurrent): (rx::IOSurfaceSurfaceEAGL::swap): (rx::IOSurfaceSurfaceEAGL::postSubBuffer): (rx::IOSurfaceSurfaceEAGL::querySurfacePointerANGLE): (rx::IOSurfaceSurfaceEAGL::bindTexImage): (rx::IOSurfaceSurfaceEAGL::releaseTexImage): (rx::IOSurfaceSurfaceEAGL::setSwapInterval): (rx::IOSurfaceSurfaceEAGL::getWidth const): (rx::IOSurfaceSurfaceEAGL::getHeight const): (rx::IOSurfaceSurfaceEAGL::isPostSubBufferSupported const): (rx::IOSurfaceSurfaceEAGL::getSwapBehavior const): (rx::IOSurfaceSurfaceEAGL::validateAttributes): (rx::IOSurfaceFramebuffer::IOSurfaceFramebuffer): (rx::IOSurfaceSurfaceEAGL::createDefaultFramebuffer): (rx::IOSurfaceSurfaceEAGL::initializeAlphaChannel): (rx::IOSurfaceSurfaceEAGL::hasEmulatedAlphaChannel const): * src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp: Copied from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp. (rx::PbufferSurfaceEAGL::PbufferSurfaceEAGL): (rx::PbufferSurfaceEAGL::~PbufferSurfaceEAGL): (rx::PbufferSurfaceEAGL::initialize): (rx::PbufferSurfaceEAGL::makeCurrent): (rx::PbufferSurfaceEAGL::swap): (rx::PbufferSurfaceEAGL::postSubBuffer): (rx::PbufferSurfaceEAGL::querySurfacePointerANGLE): (rx::PbufferSurfaceEAGL::bindTexImage): (rx::PbufferSurfaceEAGL::releaseTexImage): (rx::PbufferSurfaceEAGL::setSwapInterval): (rx::PbufferSurfaceEAGL::getWidth const): (rx::PbufferSurfaceEAGL::getHeight const): (rx::PbufferSurfaceEAGL::isPostSubBufferSupported const): (rx::PbufferSurfaceEAGL::getSwapBehavior const): (rx::PbufferSurfaceEAGL::createDefaultFramebuffer): * src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp: Added. (rx::RendererEAGL::RendererEAGL): (rx::RendererEAGL::~RendererEAGL): (rx::RendererEAGL::createWorkerContext): * src/libANGLE/renderer/gl/eagl/RendererEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h: Added. * src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: Copied from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm. (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): (-[WebSwapLayer display]): (rx::WindowSurfaceEAGL::WindowSurfaceEAGL): (rx::WindowSurfaceEAGL::~WindowSurfaceEAGL): (rx::WindowSurfaceEAGL::initialize): (rx::WindowSurfaceEAGL::makeCurrent): (rx::WindowSurfaceEAGL::swap): (rx::WindowSurfaceEAGL::postSubBuffer): (rx::WindowSurfaceEAGL::querySurfacePointerANGLE): (rx::WindowSurfaceEAGL::bindTexImage): (rx::WindowSurfaceEAGL::releaseTexImage): (rx::WindowSurfaceEAGL::setSwapInterval): (rx::WindowSurfaceEAGL::getWidth const): (rx::WindowSurfaceEAGL::getHeight const): (rx::WindowSurfaceEAGL::isPostSubBufferSupported const): (rx::WindowSurfaceEAGL::getSwapBehavior const): (rx::WindowSurfaceEAGL::createDefaultFramebuffer): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::GenerateCaps): * src/libANGLE/validationES2.cpp: (gl::ValidateFramebufferTexture2D): * src/libGLESv2/entry_points_egl_ext.cpp: 2019-11-06 Dean Jackson [ANGLE] IOSurfaceSurfaceCGL has format and internalFormat flipped https://bugs.webkit.org/show_bug.cgi?id=203911 Reviewed by Simon Fraser. Fix a typo where internalFormat and format are used in the wrong order. The table of formats also had them backwards. * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp: (rx::IOSurfaceSurfaceCGL::bindTexImage): 2019-10-29 Dean Jackson [ANGLE] Put Apple platform compilation guards in a better place https://bugs.webkit.org/show_bug.cgi?id=203590 Reviewed by Simon Fraser. Move the #define to platform.h. * src/common/platform.h: * src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp: * src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp: * src/libANGLE/renderer/gl/cgl/RendererCGL.cpp: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: 2019-10-29 Dean Jackson [ANGLE] Window Server blocking stops single GPU systems from creating a CGLPixelFormat https://bugs.webkit.org/show_bug.cgi?id=203522 Reviewed by Alex Christensen. The Web Content Process blocks access to the Window Server. For that reason, we must create all CGLPixelFormats with the "offline renderer" flag, even if we're not on a dual-GPU system. * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Always enable kCGLPFAAllowOfflineRenderers. (rx::DisplayCGL::initialize): 2019-10-23 Dean Jackson [ANGLE] Improve compile-time macOS guards and avoid ObjC if possible https://bugs.webkit.org/show_bug.cgi?id=203343 Reviewed by Simon Fraser. Use the more official compile-time detection of Apple platforms, so that it will be easier to differentiate between macOS and iOS. Also move some .mm files to .cpp where possible. * ANGLE.xcodeproj/project.pbxproj: * src/gpu_info_util/SystemInfo_mac.cpp: Renamed from Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_mac.mm. (angle::GetSystemInfo): * src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp: Renamed from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm. * src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp: Renamed from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.mm. * src/libANGLE/renderer/gl/cgl/RendererCGL.cpp: Renamed from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/RendererCGL.mm. * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: 2019-10-23 Dean Jackson Don't try to compile .inc files in ANGLE https://bugs.webkit.org/show_bug.cgi?id=203315 Reviewed by Simon Fraser. These are headers, not files we need to compile directly. * ANGLE.xcodeproj/project.pbxproj: 2019-10-15 Brent Fulgham Unreviewed build fix after r251018 * PlatformFTW.cmake: Add missing dxgi library. 2019-10-12 Stephan Szabo Regression (251018): Wincairo build broken: unresolved external symbol https://bugs.webkit.org/show_bug.cgi?id=202879 Reviewed by Alex Christensen. * PlatformWin.cmake: Add dxgi library for CreateDXGIFactory1 2019-10-11 Kenneth Russell USE_ANGLE=1 build broken with last ANGLE roll https://bugs.webkit.org/show_bug.cgi?id=202872 Add FrameCapture_mock.cpp to Xcode and CMake builds. Reviewed by Alex Christensen. * ANGLE.xcodeproj/project.pbxproj: * CMakeLists.txt: * GLESv2.cmake: 2019-10-11 Kenneth Russell Roll ANGLE for ETC extensions and EGL_ANGLE_device_cgl https://bugs.webkit.org/show_bug.cgi?id=202780 Roll ANGLE to c5e0ac757a112a24a0118d434e652fd7b558e6a8 via new update-angle.sh script. Reviewed by Alex Christensen. * .gitignore: * ANGLE.plist: * ANGLE.xcodeproj/project.pbxproj: * BUILD.gn: * CMakeLists.txt: * CONTRIBUTORS: * DEPS: * GLESv2.cmake: * OWNERS: * PRESUBMIT.py: (_CheckExportValidity): (CheckChangeOnUpload): (CheckChangeOnCommit): * README.md: * android/angle_apk.gni: * build_overrides/angle.gni: * changes.diff: * doc/DevSetup.md: * dotfile_settings.gni: * extensions/ANGLE_compressed_texture_etc.txt: Added. * extensions/EGL_ANGLE_device_cgl.txt: Added. * extensions/EGL_ANGLE_feature_control.txt: * extensions/EGL_ANGLE_platform_angle_d3d11on12.txt: Added. * extensions/EGL_ANGLE_platform_angle_device_type_swiftshader.txt: Added. * extensions/EGL_ANGLE_platform_angle_metal.txt: Added. * gni/angle.gni: * include/EGL/eglext_angle.h: * include/platform/Feature.h: (angle::Feature::Feature): * include/platform/FeaturesD3D.h: * include/platform/FeaturesGL.h: * include/platform/FeaturesVk.h: * include/platform/FrontendFeatures.h: * samples/WindowTest/WindowTest.cpp: * samples/gles1/DrawTexture.cpp: * samples/multi_texture/MultiTexture.cpp: * samples/multiple_draw_buffers/MultipleDrawBuffers.cpp: * samples/particle_system/ParticleSystem.cpp: * samples/sample_util/SampleApplication.cpp: (SampleApplication::SampleApplication): * samples/sample_util/SampleApplication.h: * scripts/code_generation_hashes/ANGLE_format.json: * scripts/code_generation_hashes/ANGLE_load_functions_table.json: * scripts/code_generation_hashes/D3D11_format.json: * scripts/code_generation_hashes/DXGI_format.json: * scripts/code_generation_hashes/GL_EGL_WGL_loader.json: * scripts/code_generation_hashes/GL_EGL_entry_points.json: * scripts/code_generation_hashes/OpenGL_dispatch_table.json: * scripts/code_generation_hashes/Static_builtins.json: * scripts/code_generation_hashes/Vulkan_format.json: * scripts/code_generation_hashes/Vulkan_internal_shader_programs.json: * scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json: * scripts/code_generation_hashes/proc_table.json: * scripts/export_targets.py: (has_all_includes): * scripts/generate_entry_points.py: (get_resource_id_types): (format_resource_id_types): (write_capture_helper_header): (get_resource_id_type_from_param_type): (format_param_type_to_resource_id_type_case): (format_param_type_resource_id_cases): (format_resource_id_type_name_case): (write_capture_helper_source): * scripts/generate_vulkan_layers_json.py: (main): * scripts/registry_xml.py: * src/common/PackedEnums.cpp: (gl::operator<<): * src/common/PackedEnums.h: (angle::EnumSize): (gl::FromGLenum): (gl::ToGLenum): (gl::ValueEquals): (gl::operator==): (gl::operator!=): * src/common/android_util.cpp: (angle::android::NativePixelFormatToGLInternalFormat): * src/common/angleutils.h: * src/common/debug.h: * src/common/platform.h: * src/common/system_utils_winuwp.cpp: Added. (angle::SetEnvironmentVar): (angle::GetEnvironmentVar): (angle::GetSharedLibraryExtension): (angle::GetPathSeparator): (angle::GetCurrentTime): (angle::UwpLibrary::UwpLibrary): (angle::OpenSharedLibrary): (angle::IsDebuggerAttached): (angle::BreakDebugger): * src/common/tls.cpp: (CreateTLSIndex): (DestroyTLSIndex): (SetTLSValue): (GetTLSValue): * src/common/tls.h: * src/common/utilities.cpp: (gl::StripLastArrayIndex): * src/common/utilities.h: * src/compiler.gni: * src/compiler/translator/Compiler.cpp: (sh::TCompiler::compileTreeImpl): * src/compiler/translator/ImmutableString_ESSL_autogen.cpp: * src/compiler/translator/ImmutableString_autogen.cpp: * src/compiler/translator/IntermNode.h: (sh::TIntermPreprocessorDirective::getDirective const): Deleted. (sh::TIntermPreprocessorDirective::getCommand const): Deleted. * src/compiler/translator/ParseContext.cpp: (sh::TParseContext::TParseContext): (sh::TParseContext::checkIsValidArraySize): (sh::TParseContext::parseFunctionDeclarator): * src/compiler/translator/ParseContext.h: (sh::TParseContext::getOutputType const): * src/compiler/translator/ShaderVars.cpp: (sh::ShaderVariable::operator=): * src/compiler/translator/SymbolTable.cpp: (sh::TSymbolTable::setGlInArraySize): (sh::TSymbolTable::gl_FragData const): (sh::TSymbolTable::gl_SecondaryFragDataEXT const): (sh::SymbolRule::get const): (sh::FindMangledBuiltIn): (sh::UnmangledEntry::matches const): * src/compiler/translator/SymbolTable.h: (sh::SymbolRule::SymbolRule): (sh::SymbolRule::Get): (sh::UnmangledEntry::UnmangledEntry): (sh::SymbolEntry::SymbolEntry): Deleted. * src/compiler/translator/SymbolTable_ESSL_autogen.cpp: (sh::BuiltInVariable::angle_BaseInstance): (sh::BuiltInVariable::angle_BaseVertex): (sh::BuiltInVariable::gl_BaseInstance): (sh::BuiltInVariable::gl_BaseVertex): (sh::BuiltInVariable::gl_DrawID): (sh::BuiltInVariable::gl_FragColor): (sh::BuiltInVariable::gl_FragCoord): (sh::BuiltInVariable::gl_FragDepth): (sh::BuiltInVariable::gl_FrontFacing): (sh::BuiltInVariable::gl_GlobalInvocationID): (sh::BuiltInVariable::gl_InstanceID): (sh::BuiltInVariable::gl_InstanceIndex): (sh::BuiltInVariable::gl_InvocationID): (sh::BuiltInVariable::gl_LastFragColor): (sh::BuiltInVariable::gl_LastFragColorARM): (sh::BuiltInVariable::gl_Layer): (sh::BuiltInVariable::gl_LayerGS): (sh::BuiltInVariable::gl_LayerVS): (sh::BuiltInVariable::gl_LocalInvocationID): (sh::BuiltInVariable::gl_LocalInvocationIndex): (sh::BuiltInVariable::gl_NumWorkGroups): (sh::BuiltInVariable::gl_PointCoord): (sh::BuiltInVariable::gl_PointSize): (sh::BuiltInVariable::gl_Position): (sh::BuiltInVariable::gl_PrimitiveID): (sh::BuiltInVariable::gl_PrimitiveIDGS): (sh::BuiltInVariable::gl_PrimitiveIDIn): (sh::BuiltInVariable::gl_SecondaryFragColorEXT): (sh::BuiltInVariable::gl_VertexID): (sh::BuiltInVariable::gl_VertexIndex): (sh::BuiltInVariable::gl_ViewID_OVR): (sh::BuiltInVariable::gl_ViewportIndex): (sh::BuiltInVariable::gl_WorkGroupID): (sh::BuiltInVariable::gl_WorkGroupSize): (sh::TSymbolTable::initializeBuiltInVariables): (sh::TSymbolTable::findBuiltIn const): (sh::TSymbolTable::isUnmangledBuiltInName const): (sh::TSymbolTable::getSymbol const): Deleted. (sh::TSymbolTable::getUnmangled const): Deleted. (sh::TSymbolTable::getUnmangledBuiltInForShaderVersion): Deleted. * src/compiler/translator/SymbolTable_autogen.cpp: (sh::BuiltInVariable::angle_BaseInstance): (sh::BuiltInVariable::angle_BaseVertex): (sh::BuiltInVariable::gl_BaseInstance): (sh::BuiltInVariable::gl_BaseVertex): (sh::BuiltInVariable::gl_DrawID): (sh::BuiltInVariable::gl_FragColor): (sh::BuiltInVariable::gl_FragCoord): (sh::BuiltInVariable::gl_FragDepth): (sh::BuiltInVariable::gl_FrontFacing): (sh::BuiltInVariable::gl_GlobalInvocationID): (sh::BuiltInVariable::gl_InstanceID): (sh::BuiltInVariable::gl_InstanceIndex): (sh::BuiltInVariable::gl_InvocationID): (sh::BuiltInVariable::gl_LastFragColor): (sh::BuiltInVariable::gl_LastFragColorARM): (sh::BuiltInVariable::gl_Layer): (sh::BuiltInVariable::gl_LayerGS): (sh::BuiltInVariable::gl_LayerVS): (sh::BuiltInVariable::gl_LocalInvocationID): (sh::BuiltInVariable::gl_LocalInvocationIndex): (sh::BuiltInVariable::gl_NumWorkGroups): (sh::BuiltInVariable::gl_PointCoord): (sh::BuiltInVariable::gl_PointSize): (sh::BuiltInVariable::gl_Position): (sh::BuiltInVariable::gl_PrimitiveID): (sh::BuiltInVariable::gl_PrimitiveIDGS): (sh::BuiltInVariable::gl_PrimitiveIDIn): (sh::BuiltInVariable::gl_SecondaryFragColorEXT): (sh::BuiltInVariable::gl_VertexID): (sh::BuiltInVariable::gl_VertexIndex): (sh::BuiltInVariable::gl_ViewID_OVR): (sh::BuiltInVariable::gl_ViewportIndex): (sh::BuiltInVariable::gl_WorkGroupID): (sh::BuiltInVariable::gl_WorkGroupSize): (sh::TSymbolTable::initializeBuiltInVariables): (sh::TSymbolTable::findBuiltIn const): (sh::TSymbolTable::isUnmangledBuiltInName const): (sh::TSymbolTable::getSymbol const): Deleted. (sh::TSymbolTable::getUnmangled const): Deleted. (sh::TSymbolTable::getUnmangledBuiltInForShaderVersion): Deleted. * src/compiler/translator/SymbolTable_autogen.h: * src/compiler/translator/TranslatorVulkan.cpp: (sh::TranslatorVulkan::translate): * src/compiler/translator/gen_builtin_symbols.py: (get_shader_version_for_level): (GroupedList.__init__): (GroupedList.add_entry): (GroupedList.format_rule): (GroupedList): (GroupedList.format_rules): (GroupedList.get_rules): (GroupedList.get_names): (GroupedList.get_offsets): (GroupedList.update_arrays): (GroupedList.update_arrays.add_rule): (UnmangledGroupedList.add_entry): (UnmangledGroupedList.get_array): (define_constexpr_variable): (process_single_function_group): (process_function_group): (process_single_variable_group): (GroupedList.add_obj): Deleted. (GroupedList.get_array): Deleted. (UnmangledGroupedList.add_obj): Deleted. * src/feature_support_util/feature_support_util.cpp: * src/gpu_info_util/SystemInfo_win.cpp: (angle::GetSystemInfo): * src/image_util/loadimage.cpp: (angle::LoadD24S8ToD32F): (angle::LoadD32ToD32FX32): (angle::LoadD32ToD32F): * src/image_util/loadimage.h: * src/libANGLE/Buffer.cpp: (gl::Buffer::Buffer): * src/libANGLE/Buffer.h: * src/libANGLE/Caps.cpp: (gl::DetermineHalfFloatTextureFilteringSupport): (gl::DetermineFloatTextureFilteringSupport): (gl::Extensions::setTextureExtensionSupport): (gl::GetExtensionInfoMap): (egl::DisplayExtensions::getStrings const): (egl::DeviceExtensions::getStrings const): (egl::ClientExtensions::getStrings const): * src/libANGLE/Caps.h: * src/libANGLE/Constants.h: * src/libANGLE/Context.cpp: (gl::Context::Context): (gl::Context::initialize): (gl::Context::onDestroy): (gl::Context::bindImageTexture): (gl::Context::getQueryiv): (gl::Context::detachTexture): (gl::Context::generateSupportedExtensions const): (gl::Context::initCaps): (gl::Context::onSubjectStateChange): (gl::StateCache::updateActiveAttribsMask): (gl::StateCache::updateVertexAttribTypesValidation): * src/libANGLE/Context.h: * src/libANGLE/Device.cpp: (egl::Device::getAttribute): (egl::Device::getDevice): Deleted. * src/libANGLE/Device.h: * src/libANGLE/Display.cpp: (egl::Display::createContext): (egl::GenerateClientExtensions): (egl::Display::isValidNativeDisplay): (egl::Display::initializeFrontendFeatures): (egl::Display::queryStringi): * src/libANGLE/ErrorStrings.h: * src/libANGLE/Fence.h: * src/libANGLE/FrameCapture.cpp: (angle::ParamCapture::ParamCapture): (angle::ParamCapture::operator=): (angle::ParamBuffer::ParamBuffer): (angle::ParamBuffer::operator=): (angle::ParamBuffer::getParam): (angle::ParamBuffer::getParam const): (angle::ParamBuffer::addParam): (angle::ParamBuffer::addReturnValue): (angle::ParamBuffer::getClientArrayPointerParameter): (angle::CallCapture::CallCapture): (angle::CallCapture::operator=): (angle::CallCapture::name const): (angle::ReplayContext::ReplayContext): (angle::ReplayContext::~ReplayContext): (angle::FrameCapture::FrameCapture): (angle::FrameCapture::maybeCaptureClientData): (angle::FrameCapture::captureCall): (angle::FrameCapture::captureUpdateResourceIDs): (angle::FrameCapture::maybeUpdateResourceIDs): (angle::FrameCapture::captureClientArraySnapshot): (angle::FrameCapture::onEndFrame): (angle::DataCounters::getAndIncrement): (angle::FrameCapture::reset): (angle::CaptureGenHandlesImpl): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::WriteParamValueToStream): (angle::CallCapture::~CallCapture): Deleted. (angle::ParamBuffer::~ParamBuffer): Deleted. (angle::ParamCapture::~ParamCapture): Deleted. (angle::FrameCapture::~FrameCapture): Deleted. (angle::FrameCapture::anyClientArray const): Deleted. (angle::FrameCapture::saveCapturedFrameAsCpp): Deleted. (angle::FrameCapture::getAndIncrementCounter): Deleted. (angle::FrameCapture::writeStringPointerParamReplay): Deleted. (angle::FrameCapture::writeRenderbufferIDPointerParamReplay): Deleted. (angle::FrameCapture::writeBinaryParamReplay): Deleted. (angle::FrameCapture::writeCallReplay): Deleted. * src/libANGLE/FrameCapture.h: (angle::CaptureGenHandles): * src/libANGLE/FrameCapture_mock.cpp: Added. (angle::CallCapture::~CallCapture): (angle::ParamBuffer::~ParamBuffer): (angle::ParamCapture::~ParamCapture): (angle::FrameCapture::FrameCapture): (angle::FrameCapture::~FrameCapture): (angle::FrameCapture::onEndFrame): (angle::FrameCapture::replay): * src/libANGLE/Framebuffer.cpp: (gl::Framebuffer::formsRenderingFeedbackLoopWith const): (gl::Framebuffer::formsCopyingFeedbackLoopWith const): * src/libANGLE/Framebuffer.h: * src/libANGLE/FramebufferAttachment.cpp: (gl::FramebufferAttachment::getRedSize const): (gl::FramebufferAttachment::getGreenSize const): (gl::FramebufferAttachment::getBlueSize const): (gl::FramebufferAttachment::getAlphaSize const): (gl::FramebufferAttachment::getDepthSize const): (gl::FramebufferAttachment::getStencilSize const): * src/libANGLE/FramebufferAttachment.h: * src/libANGLE/GLES1State.cpp: (gl::GLES1State::getActiveAttributesMask const): * src/libANGLE/GLES1State.h: * src/libANGLE/ImageIndex.cpp: * src/libANGLE/ImageIndex.h: * src/libANGLE/MemoryObject.cpp: (gl::MemoryObject::MemoryObject): * src/libANGLE/MemoryObject.h: * src/libANGLE/MemoryProgramCache.cpp: * src/libANGLE/Program.cpp: (gl::ProgramBindings::bindLocation): (gl::ProgramBindings::getBindingByName const): (gl::ProgramBindings::getBinding const): (gl::ProgramBindings::begin const): (gl::ProgramBindings::end const): (gl::ProgramAliasedBindings::ProgramAliasedBindings): (gl::ProgramAliasedBindings::~ProgramAliasedBindings): (gl::ProgramAliasedBindings::bindLocation): (gl::ProgramAliasedBindings::getBindingByName const): (gl::ProgramAliasedBindings::getBinding const): (gl::ProgramAliasedBindings::begin const): (gl::ProgramAliasedBindings::end const): (gl::ProgramState::getAttributeLocation const): (gl::ProgramState::getFirstAttachedShaderStageType const): (gl::ProgramState::getLastAttachedShaderStageType const): (gl::Program::getFragmentInputBindingInfo const): (gl::Program::link): (gl::ProgramState::updateProgramInterfaceInputs): (gl::ProgramState::updateProgramInterfaceOutputs): (gl::Program::unlink): (gl::Program::getActiveAttribute const): (gl::Program::getActiveAttributeCount const): (gl::Program::getActiveAttributeMaxLength const): (gl::Program::getAttributes const): (gl::Program::getInputResource const): (gl::Program::getInputResourceIndex const): (gl::Program::getResourceMaxNameSize const): (gl::Program::getInputResourceMaxNameSize const): (gl::Program::getOutputResourceMaxNameSize const): (gl::Program::getResourceLocation const): (gl::Program::getInputResourceLocation const): (gl::Program::getOutputResourceLocation const): (gl::Program::getOutputResourceIndex const): (gl::Program::getResourceName const): (gl::Program::getInputResourceName const): (gl::Program::getOutputResourceName const): (gl::Program::getUniformResourceName const): (gl::Program::getBufferVariableResourceName const): (gl::Program::getOutputResource const): (gl::Program::getUniformLocationBindings const): (gl::Program::linkUniforms): (gl::Program::linkAttributes): (gl::Program::linkValidateGlobalNames const): (gl::Program::getMergedVaryings const): (gl::Program::linkOutputVariables): (gl::Program::serialize const): (gl::Program::deserialize): * src/libANGLE/Program.h: (gl::ProgramVaryingRef::get const): * src/libANGLE/ProgramLinkedResources.cpp: (gl::UniformLinker::link): (gl::UniformLinker::indexUniforms): (gl::UniformLinker::gatherUniformLocationsAndCheckConflicts): * src/libANGLE/ProgramLinkedResources.h: * src/libANGLE/ProgramPipeline.cpp: (gl::ProgramPipeline::ProgramPipeline): * src/libANGLE/ProgramPipeline.h: * src/libANGLE/Query.cpp: (gl::Query::Query): * src/libANGLE/Query.h: * src/libANGLE/RefCountObject.h: (gl::RefCountObject::RefCountObject): (gl::RefCountObject::id const): (gl::BindingPointer::id const): * src/libANGLE/Renderbuffer.cpp: (gl::Renderbuffer::Renderbuffer): (gl::Renderbuffer::getId const): * src/libANGLE/Renderbuffer.h: * src/libANGLE/Sampler.cpp: (gl::Sampler::Sampler): * src/libANGLE/Sampler.h: * src/libANGLE/Semaphore.cpp: (gl::Semaphore::Semaphore): * src/libANGLE/Semaphore.h: * src/libANGLE/Shader.cpp: (gl::Shader::resolveCompile): (gl::Shader::getTransformFeedbackVaryingMappedName): * src/libANGLE/State.cpp: (gl::State::getSamplerTextureId const): (gl::State::detachTexture): (gl::State::detachSampler): (gl::State::detachRenderbuffer): (gl::State::removeTransformFeedbackBinding): (gl::State::getActiveQueryId const): (gl::State::detachBuffer): (gl::State::getIntegerv): (gl::State::getIntegeri_v): (gl::State::syncImages): (gl::State::onImageStateChange): * src/libANGLE/State.h: (gl::State::getSamplerId const): (gl::State::getRenderbufferId const): * src/libANGLE/Texture.cpp: (gl::Texture::Texture): (gl::Texture::setStorage): (gl::Texture::getId const): * src/libANGLE/Texture.h: * src/libANGLE/TransformFeedback.cpp: (gl::TransformFeedback::TransformFeedback): (gl::TransformFeedback::detachBuffer): * src/libANGLE/TransformFeedback.h: * src/libANGLE/VaryingPacking.cpp: (gl::VaryingPacking::collectAndPackUserVaryings): (gl::VaryingPacking::packUserVaryings): * src/libANGLE/VertexArray.cpp: (gl::VertexArray::detachBuffer): (gl::VertexArray::bindVertexBufferImpl): * src/libANGLE/VertexArray.h: * src/libANGLE/capture_gles_2_0_params.cpp: (gl::CaptureDeleteBuffers_buffersPacked): (gl::CaptureDeleteFramebuffers_framebuffersPacked): (gl::CaptureDeleteTextures_texturesPacked): (gl::CaptureGenBuffers_buffersPacked): (gl::CaptureGenFramebuffers_framebuffersPacked): (gl::CaptureGenRenderbuffers_renderbuffersPacked): (gl::CaptureGenTextures_texturesPacked): (gl::CaptureShaderSource_string): * src/libANGLE/capture_gles_3_0_params.cpp: (gl::CaptureDeleteQueries_idsPacked): (gl::CaptureDeleteSamplers_samplersPacked): (gl::CaptureDeleteTransformFeedbacks_idsPacked): (gl::CaptureDeleteVertexArrays_arraysPacked): (gl::CaptureGenQueries_idsPacked): (gl::CaptureGenSamplers_samplersPacked): (gl::CaptureGenTransformFeedbacks_idsPacked): (gl::CaptureGenVertexArrays_arraysPacked): * src/libANGLE/capture_gles_3_1_params.cpp: (gl::CaptureDeleteProgramPipelines_pipelinesPacked): (gl::CaptureGenProgramPipelines_pipelinesPacked): * src/libANGLE/capture_gles_ext_params.cpp: (gl::CaptureDeleteQueriesEXT_idsPacked): (gl::CaptureGenQueriesEXT_idsPacked): * src/libANGLE/features.h: * src/libANGLE/formatutils.cpp: (gl::UnsizedHalfFloatOESRGBATextureAttachmentSupport): (gl::BuildInternalFormatInfoMap): (gl::InternalFormat::computeDepthPitch const): (gl::GetVertexFormatID): (gl::GetVertexFormatFromID): (gl::GetVertexFormatSize): * src/libANGLE/frame_capture_utils_autogen.cpp: (angle::GetResourceIDTypeFromParamType): (angle::GetResourceIDTypeName): * src/libANGLE/frame_capture_utils_autogen.h: * src/libANGLE/queryutils.cpp: (gl::GetBufferVariableResourceProperty): (gl::QueryProgramResourceLocation): (gl::QueryProgramResourceiv): (egl::QueryContextAttrib): * src/libANGLE/renderer/DeviceImpl.h: * src/libANGLE/renderer/Format.h: (angle::Format::isVertexTypeHalfFloat const): * src/libANGLE/renderer/FormatID_autogen.h: * src/libANGLE/renderer/Format_table_autogen.cpp: (angle::Format::InternalFormatToID): * src/libANGLE/renderer/angle_format.py: (gl_format_channels): (get_vertex_copy_function): * src/libANGLE/renderer/angle_format_map.json: * src/libANGLE/renderer/copyvertex.h: * src/libANGLE/renderer/copyvertex.inc.h: (rx::CopyTo32FVertexData): (rx::CopyXYZ10ToXYZW32FVertexData): (rx::CopyW2XYZ10ToXYZW32FVertexData): * src/libANGLE/renderer/d3d/DeviceD3D.cpp: (rx::DeviceD3D::getAttribute): (rx::DeviceD3D::getDevice): Deleted. * src/libANGLE/renderer/d3d/DeviceD3D.h: * src/libANGLE/renderer/d3d/HLSLCompiler.cpp: (rx::HLSLCompiler::ensureInitialized): (rx::HLSLCompiler::compileToBinary): * src/libANGLE/renderer/d3d/ProgramD3D.cpp: (rx::ProgramD3D::getVertexExecutableForCachedInputLayout): * src/libANGLE/renderer/d3d/RendererD3D.cpp: (rx::DefaultGLErrorCode): * src/libANGLE/renderer/d3d/ShaderD3D.cpp: (rx::ShaderD3D::compile): * src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp: (rx::Buffer11::getConstantBufferRange): (rx::Buffer11::NativeStorage::FillBufferDesc): * src/libANGLE/renderer/d3d/d3d11/Context11.cpp: (rx::Context11::drawArrays): (rx::Context11::drawArraysInstanced): (rx::Context11::drawArraysInstancedBaseInstance): (rx::Context11::drawArraysIndirect): * src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp: (rx::DebugAnnotator11::initialize): * src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp: (rx::Renderer11::Renderer11): (rx::Renderer11::initialize): (rx::Renderer11::callD3D11On12CreateDevice): (rx::Renderer11::initializeD3DDevice): (rx::Renderer11::generateDisplayExtensions const): (rx::Renderer11::isValidNativeWindow const): (rx::Renderer11::createNativeWindow const): (rx::Renderer11::drawArrays): (rx::Renderer11::release): (rx::Renderer11::getShareHandleSupport const): (rx::Renderer11::copyImageInternal): * src/libANGLE/renderer/d3d/d3d11/Renderer11.h: * src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp: (rx::TextureStorage11::getSRVForImage): (rx::TextureStorage11::getUAVForImage): * src/libANGLE/renderer/d3d/d3d11/Trim11.cpp: (rx::Trim11::trim): (rx::Trim11::registerForRendererTrimRequest): (rx::Trim11::unregisterForRendererTrimRequest): * src/libANGLE/renderer/d3d/d3d11/Trim11.h: * src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp: (rx::RoHelper::SupportedWindowsRelease): * src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp: (rx::d3d11_gl::GenerateCaps): (rx::d3d11::InitializeFeatures): * src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h: * src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp: (rx::NativeWindow11WinRT::createSwapChain): * src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h: * src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h: * src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp: (rx::d3d9::InitializeFeatures): * src/libANGLE/renderer/gen_angle_format_table.py: (ceil_int): (get_channel_struct): (get_mip_generation_function): * src/libANGLE/renderer/gl/BlitGL.cpp: (rx::BlitGL::copyImageToLUMAWorkaroundTexture): (rx::BlitGL::copySubImageToLUMAWorkaroundTexture): (rx::BlitGL::blitColorBufferWithShader): (rx::BlitGL::copySubTexture): (rx::BlitGL::copySubTextureCPUReadback): (rx::BlitGL::copyTexSubImage): (rx::BlitGL::clearRenderableTexture): (rx::BlitGL::clearRenderbuffer): (rx::BlitGL::clearFramebuffer): (rx::BlitGL::clearRenderableTextureAlphaToOne): (rx::BlitGL::initializeResources): (rx::BlitGL::orphanScratchTextures): (rx::BlitGL::setScratchTextureParameter): (rx::BlitGL::getBlitProgram): (rx::BlitGL::getBlitProgramType): Deleted. * src/libANGLE/renderer/gl/BlitGL.h: * src/libANGLE/renderer/gl/ContextGL.cpp: (rx::ContextGL::createRenderbuffer): (rx::ContextGL::setDrawArraysState): (rx::ContextGL::setDrawElementsState): (rx::ContextGL::drawArrays): (rx::ContextGL::updateAttributesForBaseInstance): (rx::ContextGL::resetUpdatedAttributes): (rx::ContextGL::drawArraysInstancedBaseInstance): (rx::ContextGL::drawElements): (rx::ContextGL::drawElementsInstancedBaseVertexBaseInstance): (rx::ContextGL::validateState const): * src/libANGLE/renderer/gl/ContextGL.h: * src/libANGLE/renderer/gl/ProgramGL.cpp: (rx::ProgramGL::link): * src/libANGLE/renderer/gl/RenderbufferGL.cpp: (rx::RenderbufferGL::RenderbufferGL): (rx::RenderbufferGL::~RenderbufferGL): (rx::RenderbufferGL::onDestroy): (rx::RenderbufferGL::setStorage): (rx::RenderbufferGL::setStorageMultisample): (rx::RenderbufferGL::initializeContents): * src/libANGLE/renderer/gl/RenderbufferGL.h: * src/libANGLE/renderer/gl/ShaderGL.cpp: (rx::ShaderGL::compile): * src/libANGLE/renderer/gl/StateManagerGL.cpp: (rx::StateManagerGL::bindBufferBase): (rx::StateManagerGL::bindBufferRange): (rx::StateManagerGL::validateState const): * src/libANGLE/renderer/gl/StateManagerGL.h: * src/libANGLE/renderer/gl/SurfaceGL.cpp: (rx::SurfaceGL::initializeContents): * src/libANGLE/renderer/gl/TextureGL.cpp: (rx::TextureGL::setImageHelper): (rx::TextureGL::setSubImage): (rx::TextureGL::setCompressedImage): (rx::TextureGL::setCompressedSubImage): (rx::TextureGL::copyImage): (rx::TextureGL::copySubTextureHelper): (rx::TextureGL::setStorage): (rx::TextureGL::setImageExternal): (rx::TextureGL::setStorageMultisample): (rx::TextureGL::setStorageExternalMemory): (rx::TextureGL::setEGLImageTarget): (rx::TextureGL::setLevelInfo): (rx::TextureGL::initializeContents): * src/libANGLE/renderer/gl/VertexArrayGL.cpp: (rx::VertexArrayGL::streamAttributes const): (rx::VertexArrayGL::validateState const): * src/libANGLE/renderer/gl/VertexArrayGL.h: * src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp: Added. (rx::DeviceCGL::DeviceCGL): (rx::DeviceCGL::~DeviceCGL): (rx::DeviceCGL::initialize): (rx::DeviceCGL::getAttribute): (rx::DeviceCGL::getType): (rx::DeviceCGL::generateExtensions const): * src/libANGLE/renderer/gl/cgl/DeviceCGL.h: Added. * src/libANGLE/renderer/gl/cgl/DisplayCGL.h: * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::createDevice): (rx::DisplayCGL::getCGLPixelFormat const): (rx::DisplayCGL::generateExtensions const): * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm: (rx::IOSurfaceSurfaceCGL::initializeAlphaChannel): * src/libANGLE/renderer/gl/egl/DisplayEGL.cpp: (rx::DisplayEGL::generateExtensions const): * src/libANGLE/renderer/gl/glx/DisplayGLX.cpp: (rx::DisplayGLX::makeCurrent): * src/libANGLE/renderer/gl/glx/WindowSurfaceGLX.cpp: (rx::WindowSurfaceGLX::initialize): * src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::GenerateCaps): (rx::nativegl_gl::InitializeFeatures): (rx::nativegl_gl::InitializeFrontendFeatures): (rx::nativegl::SupportsCompute): (rx::nativegl::GetBufferBindingQuery): (rx::nativegl::GetBufferBindingString): * src/libANGLE/renderer/gl/renderergl_utils.h: * src/libANGLE/renderer/load_functions_data.json: * src/libANGLE/renderer/load_functions_table_autogen.cpp: (angle::GetLoadFunctionsMap): * src/libANGLE/renderer/null/DeviceNULL.cpp: (rx::DeviceNULL::getAttribute): (rx::DeviceNULL::getDevice): Deleted. * src/libANGLE/renderer/null/DeviceNULL.h: * src/libANGLE/renderer/renderer_utils.cpp: (rx::ShouldUseDebugLayers): * src/libANGLE/renderer/vulkan/BufferVk.cpp: (rx::BufferVk::release): (rx::BufferVk::mapRangeImpl): (rx::BufferVk::setDataImpl): * src/libANGLE/renderer/vulkan/CommandGraph.cpp: (rx::vk::CommandGraphResource::CommandGraphResource): (rx::vk::CommandGraphResource::~CommandGraphResource): (rx::vk::CommandGraphResource::isResourceInUse const): (rx::vk::CommandGraphResource::recordCommands): (rx::vk::CommandGraphResource::addWriteDependency): (rx::vk::CommandGraphResource::addReadDependency): (rx::vk::CommandGraphResource::startNewCommands): (rx::vk::CommandGraphResource::onWriteImpl): (rx::vk::SharedGarbage::SharedGarbage): (rx::vk::SharedGarbage::operator=): (rx::vk::SharedGarbage::destroyIfComplete): (rx::vk::CommandGraph::~CommandGraph): (rx::vk::CommandGraph::submitCommands): (rx::vk::CommandGraph::releaseResourceUses): (rx::vk::CommandGraph::releaseResourceUsesAndUpdateSerials): (rx::vk::CommandGraphResource::resetQueueSerial): Deleted. * src/libANGLE/renderer/vulkan/CommandGraph.h: (rx::vk::CommandGraphResource::getLatestSerial const): (rx::vk::CommandGraphResource::hasStartedRenderPass const): (rx::vk::CommandGraphResource::updateCurrentAccessNodes): (rx::vk::CommandGraphResource::onGraphAccess): (rx::vk::CommandGraphResource::appendToStartedRenderPass): (rx::vk::CommandGraphResource::renderPassStartedButEmpty const): (rx::vk::CommandGraphResource::clearRenderPassColorAttachment): (rx::vk::CommandGraphResource::clearRenderPassDepthAttachment): (rx::vk::CommandGraphResource::clearRenderPassStencilAttachment): (rx::vk::CommandGraphResource::invalidateRenderPassColorAttachment): (rx::vk::CommandGraphResource::invalidateRenderPassDepthAttachment): (rx::vk::CommandGraphResource::invalidateRenderPassStencilAttachment): (rx::vk::CommandGraphResource::getRenderPassRenderArea const): (rx::vk::CommandGraphResource::addGlobalMemoryBarrier): (rx::vk::CommandGraphResource::hasChildlessWritingNode const): (rx::vk::CommandGraph::onResourceUse): (rx::vk::CommandGraphResource::getStoredQueueSerial const): Deleted. (rx::vk::CommandGraphResource::updateQueueSerial): Deleted. * src/libANGLE/renderer/vulkan/ContextVk.cpp: (rx::CommandBatch::CommandBatch): (rx::CommandBatch::operator=): (rx::CommandBatch::destroy): (rx::CommandQueue::destroy): (rx::CommandQueue::init): (rx::CommandQueue::checkCompletedCommands): (rx::CommandQueue::releaseToCommandBatch): (rx::CommandQueue::clearAllGarbage): (rx::CommandQueue::allocatePrimaryCommandBuffer): (rx::CommandQueue::releasePrimaryCommandBuffer): (rx::CommandQueue::handleDeviceLost): (rx::CommandQueue::hasInFlightCommands const): (rx::CommandQueue::finishToSerialOrTimeout): (rx::CommandQueue::submitFrame): (rx::CommandQueue::getLastSubmittedFence const): (rx::ContextVk::ContextVk): (rx::ContextVk::onDestroy): (rx::ContextVk::initialize): (rx::ContextVk::setupDraw): (rx::ContextVk::setupIndirectDraw): (rx::ContextVk::setupIndexedIndirectDraw): (rx::ContextVk::setupLineLoopIndexedIndirectDraw): (rx::ContextVk::handleDirtyGraphicsVertexBuffers): (rx::ContextVk::handleDirtyGraphicsIndexBuffer): (rx::ContextVk::submitFrame): (rx::ContextVk::flushCommandGraph): (rx::ContextVk::synchronizeCpuGpuTime): (rx::ContextVk::traceGpuEventImpl): (rx::ContextVk::checkCompletedGpuEvents): (rx::ContextVk::flushGpuEvents): (rx::ContextVk::clearAllGarbage): (rx::ContextVk::handleDeviceLost): (rx::ContextVk::drawArraysIndirect): (rx::ContextVk::drawElementsIndirect): (rx::ContextVk::syncState): (rx::ContextVk::onMakeCurrent): (rx::ContextVk::dispatchComputeIndirect): (rx::ContextVk::memoryBarrier): (rx::ContextVk::writeAtomicCounterBufferDriverUniformOffsets): (rx::ContextVk::updateActiveTextures): (rx::ContextVk::updateActiveImages): (rx::ContextVk::shouldFlush): (rx::ContextVk::flushImpl): (rx::ContextVk::finishImpl): (rx::ContextVk::isSerialInUse const): (rx::ContextVk::checkCompletedCommands): (rx::ContextVk::finishToSerial): (rx::ContextVk::finishToSerialOrTimeout): (rx::ContextVk::getCompatibleRenderPass): (rx::ContextVk::getRenderPassWithOps): (rx::ContextVk::ensureSubmitFenceInitialized): (rx::ContextVk::getNextSubmitFence): (rx::ContextVk::getLastSubmittedFence const): (rx::ContextVk::getTimestamp): (rx::ContextVk::updateDefaultAttribute): (rx::ContextVk::waitForSwapchainImageIfNecessary): (rx::ContextVk::CommandBatch::CommandBatch): Deleted. (rx::ContextVk::CommandBatch::operator=): Deleted. (rx::ContextVk::CommandBatch::destroy): Deleted. (rx::ContextVk::releaseToCommandBatch): Deleted. (rx::ContextVk::recycleCommandBatch): Deleted. (rx::ContextVk::getCommandGraph): Deleted. * src/libANGLE/renderer/vulkan/ContextVk.h: (rx::ContextVk::onVertexAttributeChange): (rx::ContextVk::getCurrentQueueSerial const): (rx::ContextVk::getLastSubmittedQueueSerial const): (rx::ContextVk::getLastCompletedQueueSerial const): (rx::ContextVk::addGarbage): (rx::ContextVk::getCommandGraph): (rx::ContextVk::releaseObject): Deleted. * src/libANGLE/renderer/vulkan/DeviceVk.cpp: (rx::DeviceVk::getAttribute): (rx::DeviceVk::getDevice): Deleted. * src/libANGLE/renderer/vulkan/DeviceVk.h: * src/libANGLE/renderer/vulkan/DisplayVk.cpp: (rx::DisplayVk::generateExtensions const): * src/libANGLE/renderer/vulkan/FramebufferVk.cpp: (rx::FramebufferVk::destroy): (rx::FramebufferVk::invalidate): (rx::FramebufferVk::invalidateSub): (rx::FramebufferVk::clearImpl): (rx::FramebufferVk::getImplementationColorReadType const): (rx::FramebufferVk::blitWithCommand): (rx::FramebufferVk::blit): (rx::FramebufferVk::resolveColorWithCommand): (rx::FramebufferVk::readPixelsImpl): (rx::FramebufferVk::onScissorChange): * src/libANGLE/renderer/vulkan/FramebufferVk.h: (rx::FramebufferVk::appendToStartedRenderPass): * src/libANGLE/renderer/vulkan/GlslangWrapper.cpp: * src/libANGLE/renderer/vulkan/ImageVk.cpp: (rx::ImageVk::onDestroy): (rx::ImageVk::orphan): * src/libANGLE/renderer/vulkan/ImageVk.h: * src/libANGLE/renderer/vulkan/MemoryObjectVk.cpp: (rx::MemoryObjectVk::createImage): * src/libANGLE/renderer/vulkan/OverlayVk.cpp: (rx::OverlayVk::createFont): (rx::OverlayVk::cullWidgets): (rx::OverlayVk::onPresent): * src/libANGLE/renderer/vulkan/PersistentCommandPool.cpp: (rx::vk::PersistentCommandPool::destroy): (rx::vk::PersistentCommandPool::allocate): (rx::vk::PersistentCommandPool::alloc): Deleted. * src/libANGLE/renderer/vulkan/PersistentCommandPool.h: * src/libANGLE/renderer/vulkan/ProgramVk.cpp: (rx::ProgramVk::reset): (rx::ProgramVk::initDefaultUniformLayoutMapping): (rx::ProgramVk::updateDefaultUniformsDescriptorSet): (rx::ProgramVk::updateBuffersDescriptorSet): (rx::ProgramVk::updateAtomicCounterBuffersDescriptorSet): (rx::ProgramVk::updateImagesDescriptorSet): (rx::ProgramVk::updateTransformFeedbackDescriptorSetImpl): (rx::ProgramVk::updateDescriptorSets): * src/libANGLE/renderer/vulkan/ProgramVk.h: (rx::ProgramVk::getGraphicsPipeline): * src/libANGLE/renderer/vulkan/README.md: * src/libANGLE/renderer/vulkan/RenderTargetVk.cpp: (rx::RenderTargetVk::RenderTargetVk): (rx::RenderTargetVk::init): (rx::RenderTargetVk::reset): (rx::RenderTargetVk::onColorDraw): (rx::RenderTargetVk::onDepthStencilDraw): (rx::RenderTargetVk::updateSwapchainImage): (rx::RenderTargetVk::getImageForRead): (rx::RenderTargetVk::getImageForWrite const): (rx::RenderTargetVk::getFetchImageView const): Deleted. * src/libANGLE/renderer/vulkan/RenderTargetVk.h: * src/libANGLE/renderer/vulkan/RenderbufferVk.cpp: (rx::RenderbufferVk::setStorageImpl): (rx::RenderbufferVk::setStorageEGLImageTarget): (rx::RenderbufferVk::releaseImage): * src/libANGLE/renderer/vulkan/RenderbufferVk.h: * src/libANGLE/renderer/vulkan/RendererVk.cpp: (rx::RendererVk::~RendererVk): (rx::RendererVk::onDestroy): (rx::RendererVk::notifyDeviceLost): (rx::RendererVk::initialize): (rx::RendererVk::initializeDevice): (rx::RendererVk::initFeatures): (rx::RendererVk::queueSubmit): (rx::RendererVk::cleanupGarbage): (rx::RendererVk::getMaxFenceWaitTimeNs const): (rx::RendererVk::onCompletedSerial): (rx::RendererVk::nextSerial): Deleted. (rx::RendererVk::addGarbage): Deleted. * src/libANGLE/renderer/vulkan/RendererVk.h: (rx::CollectGarbage): (rx::RendererVk::getMaxVertexAttribDivisor const): (rx::RendererVk::collectGarbageAndReinit): (rx::RendererVk::getCurrentQueueSerial const): (rx::RendererVk::getLastSubmittedQueueSerial const): (rx::RendererVk::getLastCompletedQueueSerial const): (rx::RendererVk::shouldCleanupGarbage): * src/libANGLE/renderer/vulkan/SamplerVk.cpp: (rx::SamplerVk::onDestroy): (rx::SamplerVk::syncState): * src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.cpp: (rx::vk::priv::SecondaryCommandBuffer::executeCommands): (rx::vk::priv::SecondaryCommandBuffer::dumpCommands const): * src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h: (rx::vk::priv::SecondaryCommandBuffer::drawIndirect): (rx::vk::priv::SecondaryCommandBuffer::drawIndexedIndirect): * src/libANGLE/renderer/vulkan/SemaphoreVk.cpp: (rx::SemaphoreVk::onDestroy): * src/libANGLE/renderer/vulkan/SurfaceVk.cpp: (rx::OffscreenSurfaceVk::AttachmentImage::initialize): (rx::OffscreenSurfaceVk::AttachmentImage::destroy): (rx::OffscreenSurfaceVk::OffscreenSurfaceVk): (rx::WindowSurfaceVk::WindowSurfaceVk): (rx::WindowSurfaceVk::createSwapChain): (rx::WindowSurfaceVk::releaseSwapchainImages): (rx::WindowSurfaceVk::destroySwapChainImages): (rx::WindowSurfaceVk::present): (rx::WindowSurfaceVk::nextSwapchainImage): * src/libANGLE/renderer/vulkan/SyncVk.cpp: (rx::vk::SyncHelper::SyncHelper): (rx::vk::SyncHelper::~SyncHelper): (rx::vk::SyncHelper::releaseToRenderer): (rx::vk::SyncHelper::initialize): (rx::vk::SyncHelper::clientWait): (rx::vk::SyncHelper::serverWait): (rx::vk::SyncHelper::getStatus): (rx::SyncVk::onDestroy): (rx::SyncVk::serverWait): (rx::EGLSyncVk::onDestroy): (rx::EGLSyncVk::serverWait): (rx::FenceSyncVk::FenceSyncVk): Deleted. (rx::FenceSyncVk::~FenceSyncVk): Deleted. (rx::FenceSyncVk::onDestroy): Deleted. (rx::FenceSyncVk::initialize): Deleted. (rx::FenceSyncVk::clientWait): Deleted. (rx::FenceSyncVk::serverWait): Deleted. (rx::FenceSyncVk::getStatus): Deleted. * src/libANGLE/renderer/vulkan/SyncVk.h: * src/libANGLE/renderer/vulkan/TextureVk.cpp: (rx::TextureVk::onDestroy): (rx::TextureVk::copySubImageImpl): (rx::TextureVk::copySubTextureImpl): (rx::TextureVk::copySubImageImplWithTransfer): (rx::TextureVk::copySubImageImplWithDraw): (rx::TextureVk::setStorageExternalMemory): (rx::TextureVk::setEGLImageTarget): (rx::TextureVk::ensureImageAllocated): (rx::TextureVk::setImageHelper): (rx::TextureVk::copyImageDataToBufferAndGetData): (rx::TextureVk::copyImageDataToBuffer): (rx::TextureVk::generateMipmapsWithCPU): (rx::TextureVk::generateMipmap): (rx::TextureVk::setBaseLevel): (rx::TextureVk::changeLevels): (rx::TextureVk::bindTexImage): (rx::TextureVk::getAttachmentRenderTarget): (rx::TextureVk::ensureImageInitialized): (rx::TextureVk::initLayerRenderTargets): (rx::TextureVk::syncState): (rx::TextureVk::getReadImageView const): (rx::TextureVk::getFetchImageView const): (rx::TextureVk::getLayerLevelDrawImageView): (rx::TextureVk::getLayerLevelStorageImageView): (rx::TextureVk::initImage): (rx::TextureVk::initImageViews): (rx::TextureVk::releaseImage): (rx::TextureVk::releaseImageViews): (rx::TextureVk::releaseStagingBuffer): (rx::TextureVk::getLevelCount const): (rx::TextureVk::generateMipmapLevelsWithCPU): (rx::TextureVk::TextureVkViews::TextureVkViews): Deleted. (rx::TextureVk::TextureVkViews::~TextureVkViews): Deleted. (rx::TextureVk::TextureVkViews::release): Deleted. (rx::TextureVk::init3DRenderTargets): Deleted. (rx::TextureVk::initCubeMapRenderTargets): Deleted. (rx::TextureVk::getTextureViews const): Deleted. (rx::TextureVk::initImageViewImpl): Deleted. * src/libANGLE/renderer/vulkan/TextureVk.h: (): Deleted. * src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp: (rx::TransformFeedbackVk::onBeginOrEnd): * src/libANGLE/renderer/vulkan/UtilsVk.cpp: (rx::UtilsVk::ensureConvertIndexIndirectResourcesInitialized): (rx::UtilsVk::ensureConvertIndexIndirectLineLoopResourcesInitialized): (rx::UtilsVk::convertIndexIndirectBuffer): (rx::UtilsVk::convertLineLoopIndexIndirectBuffer): (rx::UtilsVk::startRenderPass): (rx::UtilsVk::clearFramebuffer): (rx::UtilsVk::blitResolveImpl): (rx::UtilsVk::stencilBlitResolveNoShaderExport): (rx::UtilsVk::copyImage): (rx::UtilsVk::cullOverlayWidgets): (rx::UtilsVk::drawOverlay): * src/libANGLE/renderer/vulkan/UtilsVk.h: * src/libANGLE/renderer/vulkan/VertexArrayVk.cpp: (rx::VertexArrayVk::destroy): (rx::VertexArrayVk::convertIndexBufferIndirectGPU): (rx::VertexArrayVk::handleLineLoopIndirect): (rx::VertexArrayVk::convertVertexBufferCPU): (rx::VertexArrayVk::syncDirtyAttrib): (rx::VertexArrayVk::updateStreamedAttribs): (rx::VertexArrayVk::updateDefaultAttrib): (rx::VertexArrayVk::updateClientAttribs): Deleted. * src/libANGLE/renderer/vulkan/VertexArrayVk.h: (rx::VertexArrayVk::getStreamingVertexAttribsMask const): * src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.cpp: (rx::HardwareBufferImageSiblingVkAndroid::initImpl): (rx::HardwareBufferImageSiblingVkAndroid::release): * src/libANGLE/renderer/vulkan/android/HardwareBufferImageSiblingVkAndroid.h: * src/libANGLE/renderer/vulkan/doc/FastOpenGLStateTransitions.md: * src/libANGLE/renderer/vulkan/doc/FormatTablesAndEmulation.md: * src/libANGLE/renderer/vulkan/doc/OpenGLLineSegmentRasterization.md: * src/libANGLE/renderer/vulkan/doc/ShaderModuleCompilation.md: * src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py: (shader_path): * src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc: * src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc: * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc: * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc: * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc: * src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc: * src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp: * src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp.json: * src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp: * src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json: * src/libANGLE/renderer/vulkan/vk_cache_utils.cpp: (rx::vk::GraphicsPipelineDesc::initializePipeline const): (rx::vk::GraphicsPipelineDesc::updateVertexInput): (rx::vk::PipelineLayoutDesc::updatePushConstantRange): (rx::RenderPassCache::addRenderPass): (rx::GraphicsPipelineCache::release): (rx::GraphicsPipelineCache::insertPipeline): * src/libANGLE/renderer/vulkan/vk_cache_utils.h: * src/libANGLE/renderer/vulkan/vk_caps_utils.cpp: (rx::RendererVk::ensureCapsInitialized const): * src/libANGLE/renderer/vulkan/vk_format_map.json: * src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp: (rx::vk::Format::initialize): * src/libANGLE/renderer/vulkan/vk_format_utils.cpp: (rx::MapSwizzleState): * src/libANGLE/renderer/vulkan/vk_helpers.cpp: (rx::vk::DynamicBuffer::allocate): (rx::vk::DynamicBuffer::releaseBufferListToRenderer): (rx::vk::DynamicBuffer::release): (rx::vk::DynamicBuffer::releaseInFlightBuffers): (rx::vk::DescriptorPoolHelper::release): (rx::vk::LineLoopHelper::LineLoopHelper): (rx::vk::LineLoopHelper::streamIndicesIndirect): (rx::vk::LineLoopHelper::release): (rx::vk::LineLoopHelper::destroy): (rx::vk::BufferHelper::init): (rx::vk::BufferHelper::release): (rx::vk::ImageHelper::ImageHelper): (rx::vk::ImageHelper::init): (rx::vk::ImageHelper::initExternal): (rx::vk::ImageHelper::releaseImage): (rx::vk::ImageHelper::releaseStagingBuffer): (rx::vk::ImageHelper::destroy): (rx::vk::ImageHelper::getBaseLevel): (rx::vk::ImageHelper::setBaseAndMaxLevels): (rx::vk::ImageHelper::generateMipmapsWithBlit): (rx::vk::ImageHelper::removeStagedUpdates): (rx::vk::ImageHelper::stageSubresourceUpdate): (rx::vk::ImageHelper::stageSubresourceUpdateAndGetData): (rx::vk::ImageHelper::stageSubresourceUpdateFromBuffer): (rx::vk::ImageHelper::stageSubresourceUpdateFromFramebuffer): (rx::vk::ImageHelper::allocateStagingMemory): (rx::vk::ImageHelper::flushStagedUpdates): (rx::vk::ImageHelper::isUpdateStaged): (rx::vk::ImageHelper::SubresourceUpdate::SubresourceUpdate): (rx::vk::ImageHelper::SubresourceUpdate::release): (rx::vk::FramebufferHelper::release): (rx::vk::ShaderProgramHelper::release): (rx::vk::DynamicBuffer::releaseBufferListToContext): Deleted. (rx::vk::DynamicBuffer::releaseBufferListToDisplay): Deleted. (rx::vk::ImageHelper::dumpResources): Deleted. * src/libANGLE/renderer/vulkan/vk_helpers.h: (rx::vk::ShaderProgramHelper::getShader): (rx::vk::ShaderProgramHelper::getGraphicsPipeline): * src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp: (rx::vk::ShaderLibrary::destroy): (rx::vk::ShaderLibrary::getConvertIndexIndirectLineLoop_comp): * src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.gni: * src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h: * src/libANGLE/renderer/vulkan/vk_utils.cpp: (rx::HasKhronosValidationLayer): (rx::HasStandardValidationLayer): (rx::GetAvailableValidationLayers): (rx::vk::StagingBuffer::init): (rx::vk::StagingBuffer::release): (rx::vk::GarbageObject::GarbageObject): (rx::vk::GarbageObject::operator=): (rx::vk::GarbageObject::destroy): (rx::gl_vk::GetSamplerMipmapMode): (rx::vk::StagingBuffer::dumpResources): Deleted. (rx::vk::GarbageObjectBase::GarbageObjectBase): Deleted. (rx::vk::GarbageObjectBase::destroy): Deleted. (rx::vk::GarbageObject::destroyIfComplete): Deleted. * src/libANGLE/renderer/vulkan/vk_utils.h: (rx::vk::GarbageObject::valid const): (rx::vk::GarbageObject::Get): (rx::vk::GetGarbage): (rx::vk::GarbageObjectBase::GarbageObjectBase): Deleted. * src/libANGLE/renderer/vulkan/vk_wrapper.h: (rx::vk::WrappedObject::getHandle const): (rx::vk::WrappedObject::valid const): (rx::vk::WrappedObject::ptr const): (rx::vk::WrappedObject::release): (rx::vk::WrappedObject::WrappedObject): (rx::vk::WrappedObject::~WrappedObject): (rx::vk::WrappedObject::operator=): (rx::vk::priv::CommandBuffer::SupportsQueries): (rx::vk::priv::CommandBuffer::getMemoryUsageStats const): (rx::vk::priv::CommandBuffer::drawIndexedIndirect): (rx::vk::priv::CommandBuffer::drawIndirect): (rx::vk::WrappedObject::dumpResources): Deleted. (rx::vk::priv::CommandBuffer::getMemoryUsageStats): Deleted. * src/libANGLE/validationEGL.cpp: (egl::ValidateCreateContext): (egl::ValidateMakeCurrent): (egl::ValidateCompatibleSurface): (egl::ValidateStreamConsumerGLTextureExternalKHR): (egl::ValidateStreamConsumerGLTextureExternalAttribsNV): (egl::ValidateQueryStringiANGLE): (egl::ValidateCompatibleConfigs): Deleted. * src/libANGLE/validationEGL.h: * src/libANGLE/validationES.cpp: (gl::ValidateRenderbufferStorageParametersBase): (gl::ValidateTexStorageMultisample): * src/libANGLE/validationES.h: (gl::ValidateVertexFormat): * src/libANGLE/validationES2.cpp: (gl::ValidateES2TexStorageParameters): * src/libANGLE/validationES3.cpp: (gl::ValidateES3TexStorageParametersBase): * src/libANGLE/validationES31.cpp: (gl::err::ValidateProgramResourceIndex): * src/libGLESv2.gni: * src/libGLESv2/entry_points_egl_ext.cpp: * src/tests/BUILD.gn: * src/tests/angle_deqp_tests_main.cpp: (main): * src/tests/angle_end2end_tests.gni: * src/tests/compiler_tests/DebugShaderPrecision_test.cpp: (TEST_F): * src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp: (sh::TEST): * src/tests/compiler_tests/ImmutableString_test_autogen.cpp: (sh::TEST): * src/tests/compiler_tests/QualificationOrder_test.cpp: (TEST_F): * src/tests/deqp_support/angle_deqp_gtest.cpp: (angle::InitTestHarness): * src/tests/deqp_support/angle_deqp_libtester_main.cpp: * src/tests/deqp_support/deqp_egl_TestExpectations: Removed. * src/tests/deqp_support/deqp_gles2_TestExpectations: Removed. * src/tests/deqp_support/deqp_gles31_TestExpectations: Removed. * src/tests/deqp_support/deqp_gles3_TestExpectations: Removed. * src/tests/deqp_support/deqp_khr_gles2_TestExpectations: Removed. * src/tests/deqp_support/deqp_khr_gles31_TestExpectations: Removed. * src/tests/deqp_support/deqp_khr_gles3_TestExpectations: Removed. * src/tests/deqp_support/tcuANGLENativeDisplayFactory.cpp: * src/tests/deqp_support/tcuANGLEPlatform.cpp: (tcu::ANGLEPlatform::ANGLEPlatform): * src/tests/deqp_support/tes31Context_override.cpp: (deqp::gles31::Context::Context): (deqp::gles31::Context::~Context): (deqp::gles31::Context::createRenderContext): (deqp::gles31::Context::destroyRenderContext): (deqp::gles31::Context::getRenderTarget const): * src/tests/egl_tests/EGLDeviceCGLTest.cpp: Added. (EGLDeviceCGLQueryTest::EGLDeviceCGLQueryTest): (TEST_P): * src/tests/egl_tests/EGLDirectCompositionTest.cpp: * src/tests/egl_tests/EGLFeatureControlTest.cpp: (TEST_P): * src/tests/egl_tests/EGLNoConfigContextTest.cpp: Added. (EGLNoConfigContextTest::EGLNoConfigContextTest): (TEST_P): * src/tests/gl_tests/BlendFuncExtendedTest.cpp: (angle::EXTBlendFuncExtendedDrawTestES3::LinkProgram): * src/tests/gl_tests/ComputeShaderTest.cpp: * src/tests/gl_tests/CopyTexImageTest.cpp: (angle::TEST_P): * src/tests/gl_tests/CopyTextureTest.cpp: (angle::CopyTextureVariationsTest::initializeSourceTexture): (angle::CopyTextureVariationsTest::testCopyTexture): (angle::CopyTextureVariationsTest::testCopySubTexture): (angle::TEST_P): * src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp: (angle::DrawBaseVertexBaseInstanceTest::DrawBaseVertexBaseInstanceTest): (angle::DrawBaseVertexBaseInstanceTest::vertexShaderSource300): * src/tests/gl_tests/FramebufferTest.cpp: (TEST_P): * src/tests/gl_tests/GLSLTest.cpp: * src/tests/gl_tests/IndexBufferOffsetTest.cpp: * src/tests/gl_tests/InstancingTest.cpp: * src/tests/gl_tests/LineLoopTest.cpp: (LineLoopTest::checkPixels): (LineLoopTest::runTest): (LineLoopIndirectTest::runTest): (TEST_P): * src/tests/gl_tests/LinkAndRelinkTest.cpp: (angle::TEST_P): * src/tests/gl_tests/MipmapTest.cpp: * src/tests/gl_tests/OcclusionQueriesTest.cpp: * src/tests/gl_tests/ParallelShaderCompileTest.cpp: (angle::ParallelShaderCompileTest::TaskRunner::run): * src/tests/gl_tests/ProgramInterfaceTest.cpp: * src/tests/gl_tests/SimpleOperationTest.cpp: * src/tests/gl_tests/StateChangeTest.cpp: * src/tests/gl_tests/TextureTest.cpp: (angle::SliceFormatColor): (angle::SliceFormatColor32F): * src/tests/gl_tests/TimerQueriesTest.cpp: * src/tests/gl_tests/UniformBufferTest.cpp: * src/tests/gl_tests/VertexAttributeTest.cpp: (angle::TypeStride): (angle::Normalize10): (angle::Normalize2): (angle::Pack1010102): (angle::VertexAttributeTest::checkPixels): (angle::VertexAttributeTest::checkRGBPixels): (angle::VertexAttributeTest::runTest): (angle::TEST_P): * src/tests/gles1_conformance_tests/ConformanceTests.cpp: (angle::TEST_P): * src/tests/perf_tests/ANGLEPerfTest.cpp: * src/tests/perf_tests/DrawCallPerf.cpp: (angle::DrawArraysPerfParams::DrawArraysPerfParams): Deleted. (angle::DrawArraysPerfParams::story const): Deleted. (angle::operator<<): Deleted. (angle::CreateSimpleTexture2D): Deleted. (angle::DrawCallPerfBenchmark::DrawCallPerfBenchmark): Deleted. (angle::DrawCallPerfBenchmark::initializeBenchmark): Deleted. (): Deleted. * src/tests/perf_tests/EGLMakeCurrentPerf.cpp: * src/tests/perf_tests/LinkProgramPerfTest.cpp: (angle::TEST_P): * src/tests/perf_tests/MultiviewPerf.cpp: (angle::MultiviewCPUBoundBenchmark::initializeBenchmark): (angle::MultiviewGPUBoundBenchmark::initializeBenchmark): (angle::TEST_P): * src/tests/perf_tests/UniformsPerf.cpp: (TEST_P): * src/tests/perf_tests/VulkanPipelineCachePerf.cpp: (rx::VulkanPipelineCachePerfTest::step): * src/tests/perf_tests/glmark2Benchmark.cpp: * src/tests/test_expectations/GPUTestConfig.cpp: (angle::GPUTestConfig::GPUTestConfig): * src/tests/test_expectations/GPUTestConfig.h: * src/tests/test_expectations/GPUTestExpectationsParser.cpp: (angle::GPUTestExpectationsParser::parseLine): * src/tests/test_utils/ANGLETest.cpp: * src/tests/test_utils/ANGLETest.h: * src/tests/test_utils/angle_test_configs.cpp: (angle::PlatformParameters::initDefaultParameters): (angle::operator<<): (angle::egl_platform::VULKAN_SWIFTSHADER): (angle::ES2_VULKAN_SWIFTSHADER): * src/tests/test_utils/angle_test_configs.h: * src/tests/test_utils/angle_test_instantiate.cpp: (angle::IsWindows7): * src/tests/test_utils/angle_test_instantiate.h: * src/third_party/compiler/README.chromium: * third_party/vulkan-headers/BUILD.gn: Removed. * third_party/vulkan-headers/vulkan_headers_script_deps.gni: Removed. * third_party/vulkan-loader/BUILD.gn: * third_party/vulkan-tools/BUILD.gn: Removed. * third_party/vulkan-validation-layers/BUILD.gn: Removed. * third_party/vulkan-validation-layers/dummy_spirv_tools_commit_id.h: Removed. * util/EGLWindow.cpp: * util/fuchsia/ScenicWindow.cpp: (ScenicWindow::resetNativeWindow): * util/posix/crash_handler_posix.cpp: Renamed from Source/ThirdParty/ANGLE/util/posix/Posix_crash_handler.cpp. * util/posix/test_utils_posix.cpp: Renamed from Source/ThirdParty/ANGLE/util/posix/Posix_system_utils.cpp. * util/test_utils.h: Renamed from Source/ThirdParty/ANGLE/util/system_utils.h. * util/util.gni: * util/util_gl.h: * util/windows/WGLWindow.cpp: * util/windows/test_utils_win.cpp: Renamed from Source/ThirdParty/ANGLE/util/windows/Windows_system_utils.cpp. (angle::PrintStackBacktrace): * util/windows/win32/test_utils_win32.cpp: Renamed from Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp. * util/x11/X11Window.cpp: 2019-10-01 Fujii Hironori [WinCairo][Clang][ANGLE] global_state.cpp(39,1): error: static_assert failed due to requirement 'std::is_trivially_constructible>::value' "global mutex is not trivially constructible" https://bugs.webkit.org/show_bug.cgi?id=201751 Reviewed by Alex Christensen. Clang-cl couldn't compile the latest ANGLE with MS STL owing to a static_assert failure. Fix it by cherri-picking the upstream fix. * AUTHORS: * src/common/angleutils.h: * src/libGLESv2/global_state.cpp: 2019-09-24 Adrian Perez de Castro [GTK] ANGLE's eglplatform.h is build broken with -DENABLE_X11_PLATFORM=OFF https://bugs.webkit.org/show_bug.cgi?id=198621 Reviewed by Carlos Garcia Campos. * PlatformGTK.cmake: Define WL_EGL_PLATFORM to prefer Wayland type definitions with ENABLE_WAYLAND_TARGET=ON and ENABLE_X11_TARGET=OFF to avoid ANGLE's eglplatform.h from trying to include the X11 headers. 2019-09-16 James Darpinian Remove commit.h copying build steps https://bugs.webkit.org/show_bug.cgi?id=201785 Reviewed by Alex Christensen. * ANGLE.xcodeproj/project.pbxproj: Remove leftover build step * CMakeLists.txt: Remove commit.h copying * src/common/version.h: Restore to upstream version * src/id/commit.h: Added. * update-angle.sh: Copy commit.h to id/commit.h at import time 2019-09-12 James Darpinian Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=201156 Reviewed by Alex Christensen. Update to 2019-9-9, revision 79ad0411911b2fc84834c3705f55707be9e4b498 I merged a bunch of changes to upstream ANGLE, to minimize the changes necessary when updating ANGLE in WebKit. * ANGLE.plist: Update commit hashes * ANGLE.txt: Removed in favor of LICENSE * ANGLE.xcodeproj/project.pbxproj: Updated with upstream changes Also, copy src/commit.h to id/commit.h during build * CMakeLists.txt: Updated with upstream changes Also, copy src/commit.h to id/commit.h during build * Compiler.cmake: Updated with upstream changes * GLESv2.cmake: Updated with upstream changes * adjust-angle-include-paths-rule: Support "" as well as <> for includes * adjust-angle-include-paths.sh: Support "" as well as <> for includes * changes.diff: Pared down to just legal disclaimer and warning flag changes * update-angle.sh: Update ANGLE.plist * Many other files modified/added/removed upstream 2019-09-11 Ryan Haddad Unreviewed, rolling out r249791. Breaks internal production builds. Reverted changeset: "Update ANGLE" https://bugs.webkit.org/show_bug.cgi?id=201156 https://trac.webkit.org/changeset/249791 2019-09-11 James Darpinian Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=201156 Reviewed by Alex Christensen. Update to 2019-9-9, revision 79ad0411911b2fc84834c3705f55707be9e4b498 I merged a bunch of changes to upstream ANGLE, to minimize the changes necessary when updating ANGLE in WebKit. * ANGLE.plist: Update commit hashes * ANGLE.txt: Removed in favor of LICENSE * ANGLE.xcodeproj/project.pbxproj: Updated with upstream changes Also, copy src/commit.h to id/commit.h during build * CMakeLists.txt: Updated with upstream changes Also, copy src/commit.h to id/commit.h during build * Compiler.cmake: Updated with upstream changes * GLESv2.cmake: Updated with upstream changes * adjust-angle-include-paths-rule: Support "" as well as <> for includes * adjust-angle-include-paths.sh: Support "" as well as <> for includes * changes.diff: Pared down to just legal disclaimer and warning flag changes * update-angle.sh: Update ANGLE.plist * Many other files modified/added/removed upstream 2019-08-29 Keith Rollin Update .xcconfig symbols to reflect the current set of past and future product versions. https://bugs.webkit.org/show_bug.cgi?id=200720 Reviewed by Alex Christensen. Remove version symbols related to old OS's we no longer support, ensure that version symbols are defined for OS's we do support. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2019-08-26 James Darpinian Add a script to update ANGLE https://bugs.webkit.org/show_bug.cgi?id=201109 Reviewed by Alex Christensen. * update-angle.sh: Added. 2019-08-16 Keith Rollin Add XCBuild support to ANGLE https://bugs.webkit.org/show_bug.cgi?id=200836 Reviewed by Alex Christensen. The ANGLE Xcode project contains two Build Phases: one that copies some headers, and another that modifies those headers. This combination does not work with XCBuild, which gets confused when it finds that headers that it's copied have been changed. When it detects this, XCBuild thinks that it should recopy those headers on the next build, causing their modification dates to change and for all dependent files to be rebuilt. This essentially turns an incremental rebuild into a full rebuild. Address this problem by using a new facility in Xcode 11. This facility supports the copying and modifying headers files in a single step. It is achieved by first enabling the facility by setting APPLY_RULES_IN_COPY_HEADERS to YES. Next, we add a new Build Rule that invokes a custom script when the header files are copied. Third, we provide this script, which can essentially be a stripped down version of the one already used to modify the exported headers files. Finally, we disable the use of that old script when we are using Xcode 11. In this way, the old script that modifies the exported headers is used in Xcode 10, and the new facility is used in Xcode 11. See also Bug 197340 for where this process was also applied to JavaScriptCore, WebKit, and WebKitLegacy. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: * adjust-angle-include-paths-rule: Added. 2019-08-08 Brent Fulgham [FTW] Get WebKit, WebKit2, and MiniBrowser building and executing https://bugs.webkit.org/show_bug.cgi?id=200539 Reviewed by Dean Jackson. * PlatformFTW.cmake: Added. 2019-07-17 Kenneth Russell Make ANGLE work inside WebKit2's sandbox https://bugs.webkit.org/show_bug.cgi?id=199844 Reviewed by Alex Christensen. Cherry-pick fix for crbug.com/angleproject/3383 to eliminate use of deprecated API in SystemInfo_mac.mm. * BUILD.gn: * src/gpu_info_util/SystemInfo.cpp: (angle::FindActiveGPU): (angle::PrintSystemInfo): (angle::FindPrimaryGPU): Deleted. * src/gpu_info_util/SystemInfo.h: * src/gpu_info_util/SystemInfo_internal.h: * src/gpu_info_util/SystemInfo_linux.cpp: (angle::GetSystemInfo): * src/gpu_info_util/SystemInfo_mac.mm: (angle::GetSystemInfo): * src/gpu_info_util/SystemInfo_win.cpp: (angle::GetSystemInfo): * src/tests/BUILD.gn: * src/tests/test_expectations/GPUTestConfig.cpp: * src/tests/test_utils/angle_test_instantiate.cpp: (angle::IsConfigWhitelisted): 2019-07-10 Alex Christensen Allow CMake to build WebCore on Mac https://bugs.webkit.org/show_bug.cgi?id=198979 Reviewed by Don Olmstead. * include/GLSLANG/ShaderLang.h: 2019-07-10 Kenneth Russell Hook up WebGL's back buffer in ANGLE backend on macOS https://bugs.webkit.org/show_bug.cgi?id=198982 Reviewed by Alex Christensen. Add source files needed to implement and call ANGLE extensions, and export headers necessary for those extensions. Update the script which adjusts include paths to handle the new headers. Cherry-pick fix for ANGLE bug crbug.com/angleproject/3669 to support antialias:true for ANGLE-backed WebGL contexts. * ANGLE.xcodeproj/project.pbxproj: * adjust-angle-include-paths.sh: * src/libANGLE/FramebufferAttachment.cpp: (gl::FramebufferAttachment::getTextureImageIndex const): Deleted. * src/libANGLE/FramebufferAttachment.h: (gl::FramebufferAttachment::getTextureImageIndex const): * src/libANGLE/validationES2.cpp: (gl::ValidateBlitFramebufferANGLE): 2019-06-27 Beth Dakin Upstream use of MACCATALYST https://bugs.webkit.org/show_bug.cgi?id=199245 rdar://problem/51687723 Reviewed by Tim Horton. * Configurations/SDKVariant.xcconfig: 2019-06-25 Kenneth Russell Script which adjusts include paths in ANGLE's copied headers breaks incremental builds https://bugs.webkit.org/show_bug.cgi?id=199212 Reviewed by Darin Adler. Maintain and test a timestamp in adjust-angle-include-paths.sh in order to avoid touching the headers during each build. * adjust-angle-include-paths.sh: 2019-06-25 Ryan Haddad Unreviewed, rolling out r246825. Breaks internal builds. Reverted changeset: "Script which adjusts include paths in ANGLE's copied headers breaks incremental builds" https://bugs.webkit.org/show_bug.cgi?id=199212 https://trac.webkit.org/changeset/246825 2019-06-25 Kenneth Russell Script which adjusts include paths in ANGLE's copied headers breaks incremental builds https://bugs.webkit.org/show_bug.cgi?id=199212 Reviewed by Darin Adler. Maintain and test a timestamp in adjust-angle-include-paths.sh in order to avoid touching the headers during each build. * adjust-angle-include-paths.sh: 2019-06-18 Kenneth Russell Add preliminary ANGLE backend to WebCore https://bugs.webkit.org/show_bug.cgi?id=197755 Reviewed by Dean Jackson. Add a build step which processes ANGLE's copied public headers so they can all be referred to under the prefix. This avoids touching ANGLE's headers and allows WebCore to include them with no additional include path modifications. * ANGLE.xcodeproj/project.pbxproj: * adjust-angle-include-paths.sh: Added. 2019-06-17 Ryan Haddad Unreviewed, rolling out r246501. Breaks Apple internal builds. Reverted changeset: "Support using ANGLE as the backend for the WebGL implementation" https://bugs.webkit.org/show_bug.cgi?id=197755 https://trac.webkit.org/changeset/246501 2019-06-17 Kenneth Russell Support using ANGLE as the backend for the WebGL implementation https://bugs.webkit.org/show_bug.cgi?id=197755 Reviewed by Dean Jackson. Add a build step which processes ANGLE's copied public headers so they can all be referred to under the prefix. This avoids touching ANGLE's headers and allows WebCore to include them with no additional include path modifications. * ANGLE.xcodeproj/project.pbxproj: * adjust-angle-include-paths.sh: Added. 2019-06-12 Justin Fan [WebGL] ANGLE Extension directive location incorrectly enforced for webgl 1.0 https://bugs.webkit.org/show_bug.cgi?id=198811 Reviewed by Dean Jackson. Apply ANGLE change from https://chromium-review.googlesource.com/c/angle/angle/+/1648661 to prevent enforcing ESSL late extension rule on WebGL 1.0 shaders. * src/compiler/preprocessor/DiagnosticsBase.cpp: (angle::pp::Diagnostics::message): * src/compiler/preprocessor/DiagnosticsBase.h: * src/compiler/preprocessor/DirectiveParser.cpp: (angle::pp::DirectiveParser::parseExtension): 2019-05-23 Don Olmstead [CMake] Use target oriented design for bmalloc https://bugs.webkit.org/show_bug.cgi?id=198046 Reviewed by Konstantin Tokarev. Remove WEBKIT_COPY_FILES from CMakelists.txt now that it is in WebKitMacros. * CMakeLists.txt: 2019-05-14 Miguel Gomez REGRESSION(r245088): [GTK] Several WebGL tests failing https://bugs.webkit.org/show_bug.cgi?id=197880 Reviewed by Carlos Garcia Campos. Enable GLSL compiler output for WebKitGTK. * PlatformGTK.cmake: Added. 2019-05-13 Alex Christensen Build more ANGLE files https://bugs.webkit.org/show_bug.cgi?id=197787 Reviewed by Simon Fraser. * ANGLE.xcodeproj/project.pbxproj: * src/gpu_info_util/SystemInfo.cpp: (angle::ParseMacMachineModel): * src/gpu_info_util/SystemInfo_mac.mm: (angle::GetSystemInfo): * src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: * src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm: (rx::IOSurfaceSurfaceCGL::IOSurfaceSurfaceCGL): (rx::IOSurfaceSurfaceCGL::validateAttributes): * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: (rx::WindowSurfaceCGL::initialize): (-[SwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. 2019-05-10 Michael Catanzaro Fix a bunch of compiler warnings https://bugs.webkit.org/show_bug.cgi?id=197785 Reviewed by Don Olmstead. Add compiler flags to suppress various warnings triggered by the new version of ANGLE. * CMakeLists.txt: 2019-05-09 Don Olmstead [ANGLE] Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=197676 Reviewed by Alex Christensen. * changes.diff: Updated with all the previous fixes. * include/EGL/eglplatform.h: Use the more generic name USE_SYSTEM_EGL not USE_WPE. * src/common/debug.h: Fix a stray COMPILER_GCC to be __GNUC__. 2019-05-08 Alex Christensen Fix internal and Windows builds. * ANGLE.txt: Added. Restore this file. It was deleted, but it's needed. * GLESv2.cmake: It turns out CompositorNativeWindow11.cpp and Renderer11.cpp are needed, but the bot doesn't seem to have the right SDK. 2019-05-08 Alex Christensen Fix High Sierra and Windows builds. * GLESv2.cmake: CompositorNativeWindow11.cpp was also having a hard time compiling on the bots. * src/libANGLE/validationES3.cpp: (gl::ValidateBindFragDataLocationIndexedEXT): Remove a check for if an unsigned integer is less than 0. 2019-05-08 Alex Christensen Fix High Sierra and Windows builds. * src/common/utilities.cpp: (gl::priv::gLineModes): * src/common/utilities.h: (gl::IsLineMode): Don't have a global constructor. Use a function scoped static variable instead. * GLESv2.cmake: Renderer11.cpp was not building successfully on the bots. I don't think it's needed, so just don't build it. 2019-05-08 Alex Christensen Fix High Sierra build. * src/libANGLE/State.cpp: (gl::State::kBufferSetters): * src/libANGLE/State.h: (gl::State::setBufferBinding): Remove the need for a global constructor. 2019-05-08 Don Olmstead Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=197676 Reviewed by Alex Christensen. Many changed files. Updated to trunk ANGLE 565441b1078b. 2019-04-29 Alex Christensen Fix internal High Sierra build https://bugs.webkit.org/show_bug.cgi?id=197388 * Configurations/Base.xcconfig: 2019-04-25 Alex Christensen Start using C++17 https://bugs.webkit.org/show_bug.cgi?id=197131 Reviewed by Darin Adler. * Configurations/Base.xcconfig: 2019-03-22 Keith Rollin Enable ThinLTO support in Production builds https://bugs.webkit.org/show_bug.cgi?id=190758 Reviewed by Daniel Bates. Enable building with Thin LTO in Production when using Xcode 10.2 or later. This change results in a 1.45% progression in PLT5. Full Production build times increase about 2-3%. Incremental build times are more severely affected, and so LTO is not enabled for local engineering builds. LTO is enabled only on macOS for now, until rdar://problem/49013399, which affects ARM builds, is fixed. To change the LTO setting when building locally: - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the command line. - If building with `build-webkit`, specify --lto-mode={none,thin,full} on the command line. - If building with `build-root`, specify --lto={none,thin,full} on the command line. - If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none. * Configurations/Base.xcconfig: 2019-02-23 Keith Miller Add new mac target numbers https://bugs.webkit.org/show_bug.cgi?id=194955 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2019-02-20 Andy Estes [Xcode] Add SDKVariant.xcconfig to various Xcode projects https://bugs.webkit.org/show_bug.cgi?id=194869 Rubber-stamped by Jer Noble. * ANGLE.xcodeproj/project.pbxproj: 2019-01-18 Jer Noble SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds https://bugs.webkit.org/show_bug.cgi?id=189553 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/SDKVariant.xcconfig: Added. 2019-01-17 Truitt Savell Unreviewed, rolling out r240124. This commit broke an internal build. Reverted changeset: "SDK_VARIANT build destinations should be separate from non- SDK_VARIANT builds" https://bugs.webkit.org/show_bug.cgi?id=189553 https://trac.webkit.org/changeset/240124 2019-01-17 Jer Noble SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds https://bugs.webkit.org/show_bug.cgi?id=189553 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/SDKVariant.xcconfig: Added. 2019-01-15 David Kilzer clang-tidy: Fix unnecessary copy of for loop variables in ANGLE Reviewed by Alex Christensen. Fix unwanted copying of loop variables by making them const references. * src/compiler/preprocessor/MacroExpander.cpp: (pp::MacroExpander::ScopedMacroReenabler::~ScopedMacroReenabler): - Prevents copy and reference churn of std::shared_ptr objects. * src/compiler/translator/Compiler.cpp: (sh::TCompiler::useAllMembersInUnusedStandardAndSharedBlocks): - Prevents copy of sh::InterfaceBlock structs. (sh::TCompiler::initializeOutputVariables): - Prevents copy of sh::Varying structs. * src/libANGLE/Program.cpp: (gl::(anonymous namespace)::IncludeSameArrayElement): - Prevents copy of std::string objects. 2018-10-03 Dan Bernstein ANGLE part of [Xcode] Update some build settings as recommended by Xcode 10 https://bugs.webkit.org/show_bug.cgi?id=190250 Reviewed by Andy Estes. * ANGLE.xcodeproj/project.pbxproj: Kept the unreachable code warning off for four files that were generated by tools: glslang_lex.cpp, glslang_tab.cpp, Tokenizer.cpp, and ExpressionParser.cpp. Let Xcode update LastUpgradeCheck. * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_SUSPICIOUS_MOVE, CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED. 2018-09-21 Adrian Perez de Castro [GTK] ANGLE's eglplatform.h does not support Wayland-only builds https://bugs.webkit.org/show_bug.cgi?id=189844 Reviewed by Michael Catanzaro. This makes it possible to build WebKitGTK+ after r225340 when the build is configured to support only Wayland, and the X11 headers are not present. * changes.diff: Updated. * include/EGL/eglplatform.h: Include the X11 headers only when ANGLE_USE_X11 is defined and, for consistency with Mesa's version of the header, when MESA_EGL_NO_X11_HEADERS is not defined. 2018-08-29 David Kilzer Remove empty directories from from svn.webkit.org repository * src/angle.xcodeproj: Removed. * src/common/third_party/numerics: Removed. 2018-08-28 David Kilzer Move PMurHash.{cpp,h} into 'src' folder to match path on disk * ANGLE.xcodeproj/project.pbxproj: (src/common/third_party/smhasher/src): Add folder and move PMurHash.{cpp,h} into it. This makes tidy-Xcode-project-file run smoothly when updating the ANGLE project. 2018-08-27 Keith Rollin Unreviewed build fix -- disable LTO for production builds * Configurations/Base.xcconfig: 2018-08-27 Keith Rollin Build system support for LTO https://bugs.webkit.org/show_bug.cgi?id=187785 Reviewed by Dan Bernstein. Update Base.xcconfig and DebugRelease.xcconfig to optionally enable LTO. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2018-08-03 Alex Christensen Fix spelling of "overridden" https://bugs.webkit.org/show_bug.cgi?id=188315 Reviewed by Darin Adler. * src/libANGLE/renderer/ProgramImpl.h: 2018-07-14 Kocsen Chung Ensure WebKit stack is ad-hoc signed https://bugs.webkit.org/show_bug.cgi?id=187667 Reviewed by Alexey Proskuryakov. * Configurations/Base.xcconfig: 2018-07-04 Tim Horton Introduce PLATFORM(IOSMAC) https://bugs.webkit.org/show_bug.cgi?id=187315 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2018-06-09 Dan Bernstein [Xcode] Clean up and modernize some build setting definitions https://bugs.webkit.org/show_bug.cgi?id=186463 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: Removed definition for macOS 10.11. * Configurations/DebugRelease.xcconfig: Ditto. 2018-05-30 David Kilzer ANGLE: Fix clang static analyzer issues in GetExecutablePath() and GetExecutableDirectory() Reviewed by Alex Christensen. * src/common/system_utils_linux.cpp: (angle::GetExecutablePath): (angle::GetExecutableDirectory): * src/common/system_utils_mac.cpp: (angle::GetExecutablePath): (angle::GetExecutableDirectory): * src/common/system_utils_win.cpp: (angle::GetExecutablePath): (angle::GetExecutableDirectory): 2018-05-22 Ryan Haddad Unreviewed, rolling out r232052. Breaks internal builds. Reverted changeset: "Use more C++17" https://bugs.webkit.org/show_bug.cgi?id=185176 https://trac.webkit.org/changeset/232052 2018-05-21 Yusuke Suzuki Use more C++17 https://bugs.webkit.org/show_bug.cgi?id=185176 Reviewed by JF Bastien. * Configurations/Base.xcconfig: 2018-04-18 Jer Noble Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds https://bugs.webkit.org/show_bug.cgi?id=184762 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2018-04-19 David Kilzer Enable Objective-C weak references Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: (CLANG_ENABLE_OBJC_WEAK): Enable. 2018-03-19 Carlos Alberto Lopez Perez REGRESSION(r225340): WPE port should not be getting EGL X11 types on ANGLE https://bugs.webkit.org/show_bug.cgi?id=183749 Reviewed by Alex Christensen. Add back the USE_WPE ifdef. * changes.diff: * include/EGL/eglplatform.h: 2018-03-15 Tim Horton Add and adopt WK_ALTERNATE_FRAMEWORKS_DIR in ANGLE https://bugs.webkit.org/show_bug.cgi?id=183675 Reviewed by Dan Bernstein. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: * Configurations/Base.xcconfig: 2018-01-27 Dan Bernstein HaveInternalSDK includes should be "#include?" https://bugs.webkit.org/show_bug.cgi?id=179670 * Configurations/Base.xcconfig: 2018-01-18 Dan Bernstein [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions https://bugs.webkit.org/show_bug.cgi?id=181803 Reviewed by Tim Horton. * Configurations/Base.xcconfig: Updated. * Configurations/DebugRelease.xcconfig: Ditto. 2018-01-09 Dan Bernstein Removed some empty directories that were left behind * src/third_party/murmurhash: Removed. * third_party: Removed. * third_party/deqp: Removed. 2017-12-14 David Kilzer Enable -Wstrict-prototypes for WebKit Rubber-stamped by Joseph Pecoraro. * Configurations/Base.xcconfig: (CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES. 2017-12-06 Dean Jackson Update ANGLE's changes.diff https://bugs.webkit.org/show_bug.cgi?id=180491 Reviewed by Antoine Quint. Here is the list of things we've changed from the ANGLE commit that we merged in. * changes.diff: 2017-12-06 Dean Jackson Some iOS tests failing after ANGLE update https://bugs.webkit.org/show_bug.cgi?id=180487 Reviewed by Antoine Quint. The iOS OpenGL compiler doesn't like function declarations with nameless array parameters. See: Nameless array parameters in function declaration cause compiler error While that is being fixed, tell ANGLE's translator to not cull the names from parameters. This is not a bug in ANGLE, so we won't fix it upstream at the moment. * src/compiler/translator/ParseContext.cpp: (sh::TParseContext::addFunctionPrototypeDeclaration): 2017-12-01 Michael Catanzaro Unreviewed, fix byte order macros and address new -Wunknown-pragmas warnings https://bugs.webkit.org/show_bug.cgi?id=180177 I'm not sure how this code was developed, as it seems to have been designed for GCC, but it does not use any of GCC's documented byte order macros, and accordingly does not work. Let's fix it to guarantee there are no problems when building with GCC. I presume it should help Clang as well. This time, hopefully without breaking 32-bit macOS, where __BYTE_ORDER actually is defined. * src/common/third_party/smhasher/src/PMurHash.cpp: (angle::PMurHash32_Process): 2017-12-01 Ryan Haddad Unreviewed, rolling out r225412. Breaks 32-bit macOS builds. Reverted changeset: "Unreviewed, fix byte order macros and address new -Wunknown- pragmas warnings" https://bugs.webkit.org/show_bug.cgi?id=180177 https://trac.webkit.org/changeset/225412 2017-12-01 Michael Catanzaro Unreviewed, fix byte order macros and address new -Wunknown-pragmas warnings https://bugs.webkit.org/show_bug.cgi?id=180177 I'm not sure how this code was developed, as it seems to have been designed for GCC, but it does not use any of GCC's documented byte order macros, and accordingly does not work. Let's fix it to guarantee there are no problems when building with GCC. I presume it should help Clang as well. * src/common/third_party/smhasher/src/PMurHash.cpp: (angle::PMurHash32_Process): 2017-12-01 Tomoki Imai Fix WinCairo build break after r225340 https://bugs.webkit.org/show_bug.cgi?id=180230 Unreviewed build fix. * CMakeLists.txt: Add missing sources. * PlatformWin.cmake: Add missing sources. 2017-12-01 Michael Catanzaro Unreviewed, fix -Wunknown-pragmas warnings. https://bugs.webkit.org/show_bug.cgi?id=180177 It seems GCC has started to warn about unrecognized Clang pragmas. Oh well. This is not sent upstream, because the Clang pragmas appear to be downstream WebKit additions. changes.diff is not updated, because it was not updated in yesterday's ANGLE update. * include/GLSLANG/ShaderVars.h: * src/libANGLE/Platform.cpp: 2017-11-30 Alex Christensen Speculative WinCairo fix. https://bugs.webkit.org/show_bug.cgi?id=180177 * CMakeLists.txt: * PlatformWin.cmake: 2017-11-30 Ryan Haddad Unreviewed build fix, remove executable property from a header file. * include/KHR/khrplatform.h: Removed property svn:executable. 2017-11-30 Dean Jackson Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=180177 Reviewed by Alex Christensen. Huge list of changed files omitted. 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_RANGE_LOOP_ANALYSIS https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Tim Horton. * Configurations/Base.xcconfig: 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_OBJC_LITERAL_CONVERSION https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_NON_LITERAL_NULL_CONVERSION https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Darin Adler. * Configurations/Base.xcconfig: 2017-07-13 Adrian Perez de Castro eglplatform.h does not support Wayland https://bugs.webkit.org/show_bug.cgi?id=163482 This makes it possible to build WebKitGTK+ when the target system has only Wayland support, but no X11 (and therefore the X11 headers are not present). Reviewed by Alex Christensen. * include/EGL/eglplatform.h: Add Wayland typedefs when WL_EGL_PLATFORM is defined (for example by including wayland-egl.h before including EGL/egl.h). Also, include the X11 headers only when ANGLE_USE_X11 is defined and, for consistency with Mesa's version of the header, when MESA_EGL_NO_X11_HEADERS is not defined. 2017-07-03 Andy Estes [Xcode] Add an experimental setting to build with ccache https://bugs.webkit.org/show_bug.cgi?id=173875 Reviewed by Tim Horton. * Configurations/DebugRelease.xcconfig: Included ccache.xcconfig. 2017-07-01 Dan Bernstein [macOS] Remove code only needed when building for OS X Yosemite https://bugs.webkit.org/show_bug.cgi?id=174067 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2017-06-10 Dan Bernstein Reverted r218056 because it made the IDE reindex constantly. * Configurations/DebugRelease.xcconfig: 2017-06-10 Dan Bernstein [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE https://bugs.webkit.org/show_bug.cgi?id=173223 Reviewed by Sam Weinig. The rebuilds were happening due to a difference in the compiler options that the IDE and xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and specify an appropriate path in CLANG_INDEX_STORE_PATH. * Configurations/DebugRelease.xcconfig: 2017-05-28 Dan Bernstein [Xcode] ALWAYS_SEARCH_USER_PATHS is set to YES https://bugs.webkit.org/show_bug.cgi?id=172691 Reviewed by Tim Horton. * Configurations/Base.xcconfig: Set ALWAYS_SEARCH_USER_PATHS to NO. 2017-05-09 Zan Dobersek Upstream the WPE port https://bugs.webkit.org/show_bug.cgi?id=171110 Reviewed by Alex Christensen. * include/EGL/eglplatform.h: Allow building WPE on platforms that don't provide X11 libraries. 2017-05-04 Don Olmstead [Win] Remove redundant macros that are set in the CMake config https://bugs.webkit.org/show_bug.cgi?id=171571 Reviewed by Brent Fulgham. * CMakeLists.txt: 2017-04-20 Konstantin Tokarev [cmake] Define FORWARDING_HEADERS_DIR in WebKitFS and use it everywhere https://bugs.webkit.org/show_bug.cgi?id=171071 Reviewed by Michael Catanzaro. "${DERIVED_SOURCES_DIR}/ForwardingHeaders" path occurs very often in the build system files. GTK-specifc FORWARDING_HEADERS_DIR variable should be available for all ports. * CMakeLists.txt: 2017-04-20 Fujii Hironori [WinCairo] Fix build break after updating ANGLE https://bugs.webkit.org/show_bug.cgi?id=170980 Reviewed by Brent Fulgham. * CMakeLists.txt: Added some new source files. * PlatformMac.cmake: Ditto. * PlatformWin.cmake: Ditto. Remove a macro 'ANGLE_WEBKIT_WIN' because SoftLinking is not used anymore. * src/third_party/systeminfo/: Restored. 2017-04-19 Ryan Haddad Remove executable property from a header file. * include/KHR/khrplatform.h: Removed property svn:executable. 2017-04-18 Dean Jackson Add the actual content to the files, now that SVN knows they can have tabs. * src/third_party/murmurhash/MurmurHash3.cpp: * src/third_party/murmurhash/MurmurHash3.h: 2017-04-18 Dean Jackson WinCairo needs these files I recently removed from our copy of ANGLE. * src/third_party/murmurhash/LICENSE: Added. * src/third_party/murmurhash/MurmurHash3.cpp: Added. * src/third_party/murmurhash/MurmurHash3.h: Added. 2017-04-18 Dean Jackson Still trying to fix Windows. * PlatformWin.cmake: 2017-04-18 Dean Jackson Attempt to fix the Windows build. * PlatformWin.cmake: 2017-04-18 Dean Jackson Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=170941 Reviewed by Alex Christensen. Huge list of changed files omitted. 2017-04-12 Dan Bernstein [Mac] Future-proof .xcconfig files https://bugs.webkit.org/show_bug.cgi?id=170802 Reviewed by Tim Horton. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2016-12-20 Tim Horton Remove an ANGLE Markdown file from the ANGLE target https://bugs.webkit.org/show_bug.cgi?id=166279 Reviewed by Alex Christensen. * ANGLE.xcodeproj/project.pbxproj: We don't need to build this, it's not source code. 2016-12-15 Myles C. Maxfield Sort Xcode project files https://bugs.webkit.org/show_bug.cgi?id=165937 Reviewed by Simon Fraser. * ANGLE.xcodeproj/project.pbxproj: 2016-12-15 Alex Christensen Fix Windows WebGL build after r209832 * CMakeLists.txt: * include/EGL/egl.h: * include/GLES2/gl2.h: 2016-12-14 Alex Christensen Progress towards using ANGLE to do WebGL rendering https://bugs.webkit.org/show_bug.cgi?id=165864 Reviewed by Dean Jackson. * ANGLE.xcodeproj/project.pbxproj: Compile more files, and add some more "public" headers. ANGLE is not a public framework, so these headers just go in WebKitBuild/Release/usr/local/include/ANGLE to be included when compiling WebCore. * ANGLE/egl.h: Added. * ANGLE/eglext.h: Added. * ANGLE/eglplatform.h: Added. * ANGLE/entry_points_gles_2_0.h: Added. * ANGLE/entry_points_gles_2_0_ext.h: Added. * ANGLE/entry_points_gles_3_0.h: Added. * ANGLE/export.h: Added. * ANGLE/gl2.h: Added. * ANGLE/gl2ext.h: Added. * ANGLE/gl2platform.h: Added. * ANGLE/gl3.h: Added. * ANGLE/gl31.h: Added. * ANGLE/gl3platform.h: Added. * ANGLE/khrplatform.h: Added. Add more forwarding headers. There are already a few, but we need more. * CMakeLists.txt: * PlatformMac.cmake: Make the frameworks linked to by ANGLE be private so frameworks that link with ANGLE don't automatically link with them. This allows me to switch ANGLE from a static library to a dynamic library to make sure WebCore isn't directly using OpenGL. * PlatformWin.cmake: Move HLSL-specific files to only be built on Windows. * include/EGL/egl.h: * include/EGL/eglplatform.h: * include/GLES2/gl2.h: * include/GLES2/gl2platform.h: * include/GLES3/gl3.h: * include/GLES3/gl31.h: * include/GLES3/gl32.h: * include/GLES3/gl3platform.h: * src/libGLESv2/entry_points_egl.h: * src/libGLESv2/entry_points_egl_ext.h: * src/libGLESv2/entry_points_gles_2_0.h: * src/libGLESv2/entry_points_gles_2_0_ext.h: * src/libGLESv2/entry_points_gles_3_0.h: * src/libGLESv2/entry_points_gles_3_1.h: Include ANGLE headers as #include instead of #include or #include This is needed to distinguish the ANGLE headers from any system OpenGL/OpenGLES headers. We will eventually only include ANGLE's entry_points_*.h directly from WebCore. 2016-12-07 Alex Christensen Build more of ANGLE on Mac and Windows https://bugs.webkit.org/show_bug.cgi?id=165543 Reviewed by Dean Jackson. We will need to compile these files to use ANGLE's GLESv2 implementation instead of using OpenGL directly. No functional change. * ANGLE.xcodeproj/project.pbxproj: * CMakeLists.txt: Move platform-specific files to Platform*.cmake. * PlatformMac.cmake: Added. * PlatformWin.cmake: Added. * src/libANGLE/renderer/Format.cpp: * src/libANGLE/renderer/Format_autogen.cpp: (angle::Format::Get): * src/libANGLE/renderer/gl/PathGL.cpp: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h: * src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Rename SwapLayer to WebSwapLayer. Otherwise, WebCore complains about improperly named ObjC classes. Since this is the only one, let's just rename it instead of adding an exception. (rx::WindowSurfaceCGL::initialize): (-[SwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. * src/libANGLE/renderer/gl/formatutilsgl.cpp: (rx::nativegl::GetInternalFormatMap): (rx::nativegl::GetInternalFormatInfo): * src/libANGLE/renderer/renderer_utils.cpp: (rx::GetColorWriteFunction): * src/libGLESv2/entry_points_egl.cpp: (egl::GetProcAddress): 2016-12-06 Alexey Proskuryakov Correct SDKROOT values in xcconfig files https://bugs.webkit.org/show_bug.cgi?id=165487 rdar://problem/29539209 Reviewed by Dan Bernstein. Fix suggested by Dan Bernstein. * Configurations/DebugRelease.xcconfig: 2016-10-30 Michael Catanzaro -Wpragmas warning spam from angleutils.h https://bugs.webkit.org/show_bug.cgi?id=164207 Reviewed by Darin Adler. Use #pragma clang instead of #pragma GCC since all of the warnings we need to suppress are Clang-specific warnings. GCC ignores unknown pragmas and does not warn, but it does warn if any GCC pragma is invalid. Note that this might still be broken for MSVCC, as MSVCC warns when it sees unknown pragmas. * changes.diff: * src/common/angleutils.cpp: (FormatString): * src/common/angleutils.h: (MakeStaticString): * src/common/debug.cpp: * src/common/mathutil.cpp: * src/libANGLE/Caps.cpp: (gl::TextureCapsMap::get): (gl::GetExtensionInfoMap): * src/libANGLE/Device.cpp: (egl::GetDeviceSet): * src/libANGLE/Display.cpp: (egl::Display::getClientExtensionString): * src/libANGLE/formatutils.cpp: (gl::GetInternalFormatMap): (gl::GetAllSizedInternalFormats): * src/libANGLE/validationES3.cpp: (gl::IsValidES3CopyTexImageCombination): 2016-10-28 Alex Christensen Another build fix. * CMakeLists.txt: 2016-10-28 Alex Christensen Fix Windows WebGL build after r208036 https://bugs.webkit.org/show_bug.cgi?id=164101 * CMakeLists.txt: 2016-10-27 Alex Christensen Fix Windows WebGL build after r208036 https://bugs.webkit.org/show_bug.cgi?id=164101 * CMakeLists.txt: Add new files, remove deleted files. 2016-10-27 Alex Christensen Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=164101 Reviewed by Darin Adler. Updated to f01731530e7f754e5ebaf32d00f3e23b62376424 Differences between upstream ANGLE and WebKit's copy of ANGLE are in changes.diff 2016-10-24 Alex Christensen Remove unused ANGLE.vcxproj after switching to CMake on Windows * ANGLE.vcxproj: Removed. * ANGLE.vcxproj/ANGLERelease.props: Removed. * ANGLE.vcxproj/DirectX32.props: Removed. * ANGLE.vcxproj/DirectX64.props: Removed. * ANGLE.vcxproj/libEGL.vcxproj: Removed. * ANGLE.vcxproj/libEGL.vcxproj.filters: Removed. * ANGLE.vcxproj/libEGLCommon.props: Removed. * ANGLE.vcxproj/libGLESv2.vcxproj: Removed. * ANGLE.vcxproj/libGLESv2.vcxproj.filters: Removed. * ANGLE.vcxproj/libGLESv2Common.props: Removed. * ANGLE.vcxproj/preprocessor.vcxproj: Removed. * ANGLE.vcxproj/preprocessor.vcxproj.filters: Removed. * ANGLE.vcxproj/translatorCommon.props: Removed. * ANGLE.vcxproj/translator_common.vcxproj: Removed. * ANGLE.vcxproj/translator_common.vcxproj.filters: Removed. * ANGLE.vcxproj/translator_glsl.vcxproj: Removed. * ANGLE.vcxproj/translator_glsl.vcxproj.filters: Removed. * ANGLE.vcxproj/translator_hlsl.vcxproj: Removed. * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: Removed. 2016-09-09 Dean Jackson [ANGLE] instantiation of variable 'gl::GLTypeToGLenum::value' required here, but no definition is available https://bugs.webkit.org/show_bug.cgi?id=161829 Reviewed by Alex Christensen. Newer versions of clang require explicit definition of some template types if they are in another translation unit. * src/libANGLE/Program.cpp: Add definitions for GLTypeToGLenum. 2016-07-29 David Kilzer ANGLE: Fix global constructors and exit-time destructors Reviewed by Darin Adler. * Configurations/Base.xcconfig: - Add warning flags. * src/common/angleutils.cpp: (FormatString): * src/common/angleutils.h: (MakeStaticString): * src/common/debug.cpp: * src/common/mathutil.cpp: (gl::g_sharedexp_max): (gl::convertRGBFloatsTo999E5): * src/compiler/translator/ShaderLang.cpp: (ShGetUniformRegisterMap): * src/libANGLE/Caps.cpp: (gl::TextureCapsMap::get): * src/libANGLE/Device.cpp: (egl::GetDeviceSet): * src/libANGLE/Display.cpp: (egl::Display::getClientExtensionString): * src/libANGLE/formatutils.cpp: (gl::BuildFormatMap): (gl::BuildInternalFormatInfoMap): (gl::GetInternalFormatMap): (gl::BuildAllSizedInternalFormatSet): (gl::GetSizedInternalFormat): (gl::GetAllSizedInternalFormats): * src/libANGLE/validationES3.cpp: (gl::BuildES3FormatSet): (gl::ValidateTexImageFormatCombination): (gl::BuildSizedEffectiveInternalFormatList): (gl::BuildUnsizedEffectiveInternalFormatList): (gl::GetEffectiveInternalFormat): (gl::BuildValidES3CopyTexImageCombinations): (gl::IsValidES3CopyTexImageCombination): - Fix global constructors and exit-time destructors. 2016-07-13 Enrica Casucci Update supported platforms in xcconfig files to match the sdk names. https://bugs.webkit.org/show_bug.cgi?id=159728 Reviewed by Tim Horton. * Configurations/Base.xcconfig: 2016-05-24 Alex Christensen Fix iOS WebGL after r199738 https://bugs.webkit.org/show_bug.cgi?id=158024 rdar://problem/26446679 Reviewed by Myles Maxfield. * ANGLE.xcodeproj/project.pbxproj: iOS needs the ESSL translator. 2016-05-22 Brady Eidson Move to C++14. https://bugs.webkit.org/show_bug.cgi?id=157948 Reviewed by Michael Catanzaro. * Configurations/Base.xcconfig: 2016-04-26 Per Arne Vollan [WinCairo][ANGLE] Display object is not created. https://bugs.webkit.org/show_bug.cgi?id=157042 Reviewed by Alex Christensen. The CreateDisplayFromAttribs function will not create a DisplayD3D object when the requested type is EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE, because ANGLE_ENABLE_OPENGL is not defined. We should be able to create a DisplayD3D object without defining ANGLE_ENABLE_OPENGL. * src/libANGLE/Display.cpp: 2016-04-26 Per Arne Vollan [WinCairo][WebGL] Enable ESSL and GLSL translators. https://bugs.webkit.org/show_bug.cgi?id=157002 Reviewed by Darin Adler. Enable support for ESSL and GLSL translators, and add missing files. * CMakeLists.txt: 2016-04-22 Joonghun Park [ANGLE] Remove deprecated auto_ptr warning. Unreviewed. https://bugs.webkit.org/show_bug.cgi?id=156894 * src/compiler/preprocessor/MacroExpander.h: Use std::unique_ptr instead of std::auto_ptr. 2016-04-19 Alex Christensen Build fix after r199738 * CMakeLists.txt: 2016-04-19 Alex Christensen Build fix after r199738 * CMakeLists.txt: 2016-04-19 Alex Christensen Build fix. * src/compiler/translator/Intermediate.h: Added. (TIntermediate::TIntermediate): * src/compiler/translator/intermediate.h: Removed. Changed case of Intermediate.h file name for case sensitive file systems. 2016-04-19 Alex Christensen Update ANGLE https://bugs.webkit.org/show_bug.cgi?id=156755 Reviewed by Dean Jackson. Huge list of changed files omitted. 2016-04-12 Alex Christensen Remove failing assertion in ANGLE https://bugs.webkit.org/show_bug.cgi?id=156485 Reviewed by Dean Jackson. * src/compiler/translator/glslang.l: * src/compiler/translator/glslang_lex.cpp: 2016-04-11 Fujii Hironori [CMake] Make FOLDER property INHERITED https://bugs.webkit.org/show_bug.cgi?id=156460 Reviewed by Brent Fulgham. * CMakeLists.txt: Set FOLDER property as a directory property not a target property 2016-03-22 Alberto Garcia Unreviewed typo fix. * src/compiler/translator/InfoSink.cpp: (TInfoSinkBase::prefix): "UNKOWN" => "UNKOWN". 2016-03-20 Dan Bernstein [Mac] Determine TARGET_MAC_OS_X_VERSION_MAJOR from MACOSX_DEPLOYMENT_TARGET rather than from MAC_OS_X_VERSION_MAJOR https://bugs.webkit.org/show_bug.cgi?id=155707 Reviewed by Darin Adler. * Configurations/Base.xcconfig: Set TARGET_MAC_OS_X_VERSION_MAJOR based on the last component of MACOSX_DEPLOYMENT_TARGET. * Configurations/DebugRelease.xcconfig: For engineering builds, preserve the behavior of TARGET_MAC_OS_X_VERSION_MAJOR being the host’s OS version. 2016-03-20 Dan Bernstein Update build settings Rubber-stamped by Andy Estes. * Configurations/DebugRelease.xcconfig: 2016-02-23 Dan Bernstein [Xcode] Linker errors display mangled names, but no longer should https://bugs.webkit.org/show_bug.cgi?id=154632 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: Stop setting LINKER_DISPLAYS_MANGLED_NAMES to YES. 2016-01-08 Brent Fulgham [ANGLE] Correct UNREACHABLE runtime assertion for void constructors https://bugs.webkit.org/show_bug.cgi?id=152900 Reviewed by Alex Christensen. Tested by Khronos WebGL 1.0.4 suite. Merge a small part of ANGLE upstream commit r284735: commit 01971113492d9aca386f2bca021b1f4b134fc277 author Dmitry Skiba Fri Jul 10 18:54:00 2015 committer Jamie Madill Fri Jul 10 19:03:34 2015 tree 47e42eac00f7d64cddb14b3cc21a4e605c189d20 This issue was found by * src/compiler/translator/Types.cpp: (TType::buildMangledName): Don't assert with UNREACHABLE here. 2015-12-28 Joonghun Park [ANGLE][EFL][GTK] Remove 'template class std::auto_ptr is deprecated' compile warning https://bugs.webkit.org/show_bug.cgi?id=152567 Reviewed by Alex Christensen. Because auto_ptr is deprecated as of C++11, we should use unique_ptr instead. * src/compiler/preprocessor/MacroExpander.h: 2015-12-19 Dan Bernstein [Mac] WebKit contains dead source code for OS X Mavericks and earlier https://bugs.webkit.org/show_bug.cgi?id=152462 Reviewed by Alexey Proskuryakov. * Configurations/DebugRelease.xcconfig: Removed definitions of MACOSX_DEPLOYMENT_TARGET for OS X 10.8 and 10.9. 2015-12-03 Anders Carlsson Remove Objective-C GC support https://bugs.webkit.org/show_bug.cgi?id=151819 rdar://problem/23746991 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2015-11-30 Dana Burkart Remove Mountain Lion support from ANGLE https://bugs.webkit.org/show_bug.cgi?id=151679 Reviewed by Darin Adler. * Configurations/Base.xcconfig: 2015-11-02 Andy Estes [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS https://bugs.webkit.org/show_bug.cgi?id=150819 Reviewed by Dan Bernstein. This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE. * Configurations/Base.xcconfig: 2015-10-10 Dan Bernstein [iOS] Remove project support for iOS 8 https://bugs.webkit.org/show_bug.cgi?id=149993 Reviewed by Alexey Proskuryakov. * Configurations/ANGLE.xcconfig: * Configurations/Base.xcconfig: 2015-08-20 Alex Christensen Clean up CMake build after r188673 https://bugs.webkit.org/show_bug.cgi?id=148234 Reviewed by Tim Horton. * CMakeLists.txt: Copy headers to forwarding headers. 2015-08-11 Brent Fulgham [Win] Switch Windows build to Visual Studio 2015 https://bugs.webkit.org/show_bug.cgi?id=147887 Reviewed by Alex Christensen. Update Visual Studio project file settings to use the current Visual Studio and compiler. Continue targeting binaries to run on our minimum supported configuration of Windows 7. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/preprocessor.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj: 2015-08-04 Alex Christensen Build fix after r187928. * CMakeLists.txt: Typo. Set libGLESv2 compile definitions instead of libEGL, which are set separately. 2015-08-04 Alex Christensen Soft link libGLESv2 and libEGL on Windows again https://bugs.webkit.org/show_bug.cgi?id=147671 Reviewed by Dean Jackson. * CMakeLists.txt: Clean up some warnings when compiling with CMake. * include/EGL/egl.h: * include/EGL/eglsoftlinking.h: * include/GLES2/gl2.h: Soft link egl optionally. 2015-08-04 Alex Christensen Enable WebGL on Windows CMake build. https://bugs.webkit.org/show_bug.cgi?id=143311 Reviewed by Csaba Osztrogonác. * CMakeLists.txt: Added. 2015-07-03 Dan Bernstein [Xcode] Update some build settings as recommended by Xcode 7 https://bugs.webkit.org/show_bug.cgi?id=146597 Reviewed by Sam Weinig. * ANGLE.xcodeproj/project.pbxproj: Enabled CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION, ENABLE_STRICT_OBJC_MSGSEND and GCC_NO_COMMON_BLOCKS. * Configurations/Base.xcconfig: Updated LastUpgradeCheck. 2015-07-03 Per Arne Vollan [WinCairo][WebGL] Enable HLSL. https://bugs.webkit.org/show_bug.cgi?id=146559 Reviewed by Alex Christensen. High Level Shader Language needs to be enabled for WebGL to work on Windows. * ANGLE.vcxproj/translatorCommon.props: * ANGLE.vcxproj/translator_hlsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: 2015-07-01 Alex Christensen Re-enable WebGL on WinCairo https://bugs.webkit.org/show_bug.cgi?id=146537 Reviewed by Csaba Osztrogonác. * ANGLE.vcxproj/DirectX32.props: * ANGLE.vcxproj/DirectX64.props: * ANGLE.vcxproj/libGLESv2Common.props: Update DirectX directories to use the Windows SDK instead of the June 2010 DirectX SDK. 2015-07-01 Alex Christensen Fix ANGLE Windows build after r186169. https://bugs.webkit.org/show_bug.cgi?id=146532 Reviewed by Brent Fulgham. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libEGL.vcxproj.filters: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj.filters: * ANGLE.vcxproj/libGLESv2Common.props: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj.filters: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj.filters: * ANGLE.vcxproj/translator_hlsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: Update Windows build to build new files. 2015-06-30 Alex Christensen Update ANGLE to b11e2483742db884bd0af41f78f528240577356b. https://bugs.webkit.org/show_bug.cgi?id=145010 Reviewed by Dean Jackson. Huge list of source changes omitted. ROLL DEPS! 2015-05-26 Dan Bernstein Update build settings Reviewed by Anders Carlsson. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2015-05-19 Carlos Alberto Lopez Perez REGRESSION(r181571): Build broken when USE(OPENGL_ES_2) is defined. https://bugs.webkit.org/show_bug.cgi?id=145156 Reviewed by Alex Christensen. * include/GLES2/gl2softlinking.h: Revert r181589. Vertex Array Objects are not in GLESv2. 2015-05-11 Brent Fulgham [Win] Move Windows build target to Windows 7 (or newer) https://bugs.webkit.org/show_bug.cgi?id=144890 Reviewed by Anders Carlsson. Update linked SDK and minimal Windows level to be compatible with Windows 7 or newer. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/preprocessor.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj: 2015-05-07 Dan Bernstein [Xcode] Remove usage of AspenFamily.xcconfig in Source/ https://bugs.webkit.org/show_bug.cgi?id=144727 Reviewed by Darin Adler. * Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator. 2015-04-01 Alex Christensen Progress towards CMake on Windows and Mac. https://bugs.webkit.org/show_bug.cgi?id=143293 Reviewed by Filip Pizlo. * include/GLES2/gl2.h: Temporarily disabled WebGL on Windows CMake builds. 2015-03-17 Zan Dobersek [CMake] Use a forwarding header for ANGLE's ShaderLang.h to avoid picking up ANGLE's EGL headers https://bugs.webkit.org/show_bug.cgi?id=142530 Reviewed by Darin Adler. * ANGLE/ShaderLang.h: Added. Includes include/GLSLANG/ShaderLang.h. Used in WebCore so we can avoid using ANGLE's EGL headers and use the system-default headers instead. 2015-03-16 Roger Fong [Win] Unreviewed build fix after r181571. * include/GLES2/gl2softlinking.h: 2015-03-12 Brent Fulgham [Win] Unreviewed build fix (part 2). * ANGLE.vcxproj/libGLESv2Common.props: Missed a directory separator. 2015-03-12 Brent Fulgham [Win] Unreviewed build fix for some DirectX SDK Installs * ANGLE.vcxproj/libGLESv2Common.props: Correct path for Lib and Include paths based on problems others have had building WebKit under different Windows and DirectX revisions. 2015-02-20 Alexey Proskuryakov Remove svn:keywords property. As far as I can tell, the property had no effect on any of these files, but also, when it has effect it's likely harmful. * ANGLE.txt: Removed property svn:keywords. * src/common/RefCountObject.cpp: Removed property svn:keywords. * src/common/RefCountObject.h: Removed property svn:keywords. * src/compiler/translator/BaseTypes.h: Removed property svn:keywords. * src/compiler/translator/BuiltInFunctionEmulator.cpp: Removed property svn:keywords. * src/compiler/translator/BuiltInFunctionEmulator.h: Removed property svn:keywords. * src/compiler/translator/CodeGen.cpp: Removed property svn:keywords. * src/compiler/translator/Common.h: Removed property svn:keywords. * src/compiler/translator/Compiler.cpp: Removed property svn:keywords. * src/compiler/translator/ConstantUnion.h: Removed property svn:keywords. * src/compiler/translator/DetectCallDepth.cpp: Removed property svn:keywords. * src/compiler/translator/DetectCallDepth.h: Removed property svn:keywords. * src/compiler/translator/DetectDiscontinuity.cpp: Removed property svn:keywords. * src/compiler/translator/DetectDiscontinuity.h: Removed property svn:keywords. * src/compiler/translator/Diagnostics.cpp: Removed property svn:keywords. * src/compiler/translator/Diagnostics.h: Removed property svn:keywords. * src/compiler/translator/DirectiveHandler.cpp: Removed property svn:keywords. * src/compiler/translator/DirectiveHandler.h: Removed property svn:keywords. * src/compiler/translator/ExtensionBehavior.h: Removed property svn:keywords. * src/compiler/translator/ForLoopUnroll.cpp: Removed property svn:keywords. * src/compiler/translator/ForLoopUnroll.h: Removed property svn:keywords. * src/compiler/translator/HashNames.h: Removed property svn:keywords. * src/compiler/translator/InfoSink.cpp: Removed property svn:keywords. * src/compiler/translator/InfoSink.h: Removed property svn:keywords. * src/compiler/translator/Initialize.cpp: Removed property svn:keywords. * src/compiler/translator/Initialize.h: Removed property svn:keywords. * src/compiler/translator/InitializeDll.cpp: Removed property svn:keywords. * src/compiler/translator/InitializeDll.h: Removed property svn:keywords. * src/compiler/translator/InitializeGlobals.h: Removed property svn:keywords. * src/compiler/translator/InitializeParseContext.cpp: Removed property svn:keywords. * src/compiler/translator/InitializeParseContext.h: Removed property svn:keywords. * src/compiler/translator/InitializeVariables.cpp: Removed property svn:keywords. * src/compiler/translator/InitializeVariables.h: Removed property svn:keywords. * src/compiler/translator/IntermTraverse.cpp: Removed property svn:keywords. * src/compiler/translator/Intermediate.cpp: Removed property svn:keywords. * src/compiler/translator/MMap.h: Removed property svn:keywords. * src/compiler/translator/NodeSearch.h: Removed property svn:keywords. * src/compiler/translator/OutputESSL.cpp: Removed property svn:keywords. * src/compiler/translator/OutputESSL.h: Removed property svn:keywords. * src/compiler/translator/OutputGLSL.cpp: Removed property svn:keywords. * src/compiler/translator/OutputGLSL.h: Removed property svn:keywords. * src/compiler/translator/OutputGLSLBase.cpp: Removed property svn:keywords. * src/compiler/translator/OutputGLSLBase.h: Removed property svn:keywords. * src/compiler/translator/OutputHLSL.cpp: Removed property svn:keywords. * src/compiler/translator/OutputHLSL.h: Removed property svn:keywords. * src/compiler/translator/ParseContext.cpp: Removed property svn:keywords. * src/compiler/translator/ParseContext.h: Removed property svn:keywords. * src/compiler/translator/PoolAlloc.cpp: Removed property svn:keywords. * src/compiler/translator/PoolAlloc.h: Removed property svn:keywords. * src/compiler/translator/Pragma.h: Removed property svn:keywords. * src/compiler/translator/QualifierAlive.cpp: Removed property svn:keywords. * src/compiler/translator/QualifierAlive.h: Removed property svn:keywords. * src/compiler/translator/RemoveTree.cpp: Removed property svn:keywords. * src/compiler/translator/RemoveTree.h: Removed property svn:keywords. * src/compiler/translator/RenameFunction.h: Removed property svn:keywords. * src/compiler/translator/RewriteElseBlocks.cpp: Removed property svn:keywords. * src/compiler/translator/RewriteElseBlocks.h: Removed property svn:keywords. * src/compiler/translator/SearchSymbol.cpp: Removed property svn:keywords. * src/compiler/translator/SearchSymbol.h: Removed property svn:keywords. * src/compiler/translator/ShHandle.h: Removed property svn:keywords. * src/compiler/translator/ShaderLang.cpp: Removed property svn:keywords. * src/compiler/translator/SymbolTable.cpp: Removed property svn:keywords. * src/compiler/translator/SymbolTable.h: Removed property svn:keywords. * src/compiler/translator/TranslatorESSL.cpp: Removed property svn:keywords. * src/compiler/translator/TranslatorESSL.h: Removed property svn:keywords. * src/compiler/translator/TranslatorGLSL.cpp: Removed property svn:keywords. * src/compiler/translator/TranslatorGLSL.h: Removed property svn:keywords. * src/compiler/translator/TranslatorHLSL.cpp: Removed property svn:keywords. * src/compiler/translator/TranslatorHLSL.h: Removed property svn:keywords. * src/compiler/translator/Types.h: Removed property svn:keywords. * src/compiler/translator/UnfoldShortCircuit.cpp: Removed property svn:keywords. * src/compiler/translator/UnfoldShortCircuit.h: Removed property svn:keywords. * src/compiler/translator/UnfoldShortCircuitAST.cpp: Removed property svn:keywords. * src/compiler/translator/UnfoldShortCircuitAST.h: Removed property svn:keywords. * src/compiler/translator/ValidateLimitations.cpp: Removed property svn:keywords. * src/compiler/translator/ValidateLimitations.h: Removed property svn:keywords. * src/compiler/translator/VariableInfo.cpp: Removed property svn:keywords. * src/compiler/translator/VariableInfo.h: Removed property svn:keywords. * src/compiler/translator/VariablePacker.cpp: Removed property svn:keywords. * src/compiler/translator/VariablePacker.h: Removed property svn:keywords. * src/compiler/translator/VersionGLSL.cpp: Removed property svn:keywords. * src/compiler/translator/VersionGLSL.h: Removed property svn:keywords. * src/compiler/translator/compilerdebug.cpp: Removed property svn:keywords. * src/compiler/translator/compilerdebug.h: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraph.cpp: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraph.h: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraphBuilder.cpp: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraphBuilder.h: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraphOutput.cpp: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraphOutput.h: Removed property svn:keywords. * src/compiler/translator/depgraph/DependencyGraphTraverse.cpp: Removed property svn:keywords. * src/compiler/translator/generate_parser.sh: Removed property svn:keywords. * src/compiler/translator/glslang.h: Removed property svn:keywords. * src/compiler/translator/glslang_lex.cpp: Removed property svn:keywords. * src/compiler/translator/glslang_tab.cpp: Removed property svn:keywords. * src/compiler/translator/glslang_tab.h: Removed property svn:keywords. * src/compiler/translator/intermOut.cpp: Removed property svn:keywords. * src/compiler/translator/intermediate.h: Removed property svn:keywords. * src/compiler/translator/localintermediate.h: Removed property svn:keywords. * src/compiler/translator/osinclude.h: Removed property svn:keywords. * src/compiler/translator/ossource_posix.cpp: Removed property svn:keywords. * src/compiler/translator/ossource_win.cpp: Removed property svn:keywords. * src/compiler/translator/parseConst.cpp: Removed property svn:keywords. * src/compiler/translator/timing/RestrictFragmentShaderTiming.cpp: Removed property svn:keywords. * src/compiler/translator/timing/RestrictFragmentShaderTiming.h: Removed property svn:keywords. * src/compiler/translator/timing/RestrictVertexShaderTiming.cpp: Removed property svn:keywords. * src/compiler/translator/timing/RestrictVertexShaderTiming.h: Removed property svn:keywords. * src/compiler/translator/util.cpp: Removed property svn:keywords. * src/compiler/translator/util.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/BufferStorage11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/BufferStorage11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Fence11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Fence11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Image11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Image11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/IndexBuffer11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/IndexBuffer11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/InputLayoutCache.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Query11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Query11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/RenderStateCache.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/RenderStateCache.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/RenderTarget11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/RenderTarget11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Renderer11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/Renderer11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/ShaderExecutable11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/ShaderExecutable11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/SwapChain11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/SwapChain11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/TextureStorage11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/TextureStorage11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/VertexBuffer11.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/VertexBuffer11.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/renderer11_utils.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d11/renderer11_utils.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/BufferStorage9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/BufferStorage9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Fence9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Fence9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Image9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Image9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/IndexBuffer9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/IndexBuffer9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Query9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Query9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/RenderTarget9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/RenderTarget9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Renderer9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/Renderer9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/ShaderExecutable9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/ShaderExecutable9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/SwapChain9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/SwapChain9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/TextureStorage9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/TextureStorage9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/VertexBuffer9.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/VertexBuffer9.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/VertexDeclarationCache.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/VertexDeclarationCache.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/renderer9_utils.cpp: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/renderer9_utils.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/shaders/compiled/componentmaskps.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/shaders/compiled/flipyvs.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/shaders/compiled/luminanceps.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/shaders/compiled/passthroughps.h: Removed property svn:keywords. * src/libGLESv2/renderer/d3d9/shaders/compiled/standardvs.h: Removed property svn:keywords. 2015-01-28 Dana Burkart Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig https://bugs.webkit.org/show_bug.cgi?id=136765 Reviewed by Alexey Proskuryakov. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2014-12-26 Dan Bernstein REGRESSION (r177027): iOS builds use the wrong toolchain https://bugs.webkit.org/show_bug.cgi?id=139950 Reviewed by David Kilzer. * Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so in a manner that works with Xcode 5.1.1. 2014-12-24 Dan Bernstein ANGLE extern symbols are not hidden by default, but should be https://bugs.webkit.org/show_bug.cgi?id=139936 Reviewed by Mark Rowe. * Configurations/Base.xcconfig: Changed GCC_SYMBOLS_PRIVATE_EXTERN to YES. 2014-12-24 Dan Bernstein Removed the Derived Sources target. It has been empty since r159533. * ANGLE.xcodeproj/project.pbxproj: 2014-12-09 David Kilzer Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, JavaScriptCore, WTF Reviewed by Joseph Pecoraro. * Configurations/Base.xcconfig: - Only set GCC_ENABLE_OBJC_GC, GCC_MODEL_TUNING and TOOLCHAINS on OS X. * Configurations/DebugRelease.xcconfig: - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X. 2014-10-30 Dana Burkart Prepare for the mysterious future Reviewed by Lucas Forschler. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2014-10-08 Brent Fulgham [Win] Use proper v120 target for 64-bit builds. * ANGLE.vcxproj/libEGL.vcxproj: 2014-09-29 peavo@outlook.com [WinCairo] D3D11 is not used by default. https://bugs.webkit.org/show_bug.cgi?id=137215 Reviewed by Alex Christensen. ANGLE_DEFAULT_D3D11 needs to be defined for D3D11 to be used as default. * ANGLE.vcxproj/libGLESv2Common.props: 2014-09-19 Daniel Bates Always assume internal SDK when building configuration Production https://bugs.webkit.org/show_bug.cgi?id=136925 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2014-09-10 Roger Fong Check for varying packing restrictions per program instead of per shader. https://bugs.webkit.org/show_bug.cgi?id=136585. . Reviewed by Dean Jackson. Remove varying packing restrictions checks from ANGLE. * src/compiler/translator/Compiler.cpp: (TCompiler::compile): (TCompiler::enforcePackingRestrictions): * src/compiler/translator/ShHandle.h: 2014-09-06 Darin Adler Make updates suggested by new version of Xcode https://bugs.webkit.org/show_bug.cgi?id=136603 Reviewed by Mark Rowe. * ANGLE.xcodeproj/project.pbxproj: Updated LastUpgradeCheck. * Configurations/ANGLE.xcconfig: Added CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION, COMBINE_HIDPI_IMAGES, and ENABLE_STRICT_OBJC_MSGSEND as suggested by Xcode upgrade check. 2014-09-06 Commit Queue Unreviewed, rolling out r173335. https://bugs.webkit.org/show_bug.cgi?id=136597 Broke webgl/1.0.2/conformance/glsl/misc/shader-varying- packing-restrictions.html (Requested by ap on #webkit). Reverted changeset: "Remove statically used varyings from packing restrictions check." https://bugs.webkit.org/show_bug.cgi?id=136585 http://trac.webkit.org/changeset/173335 2014-09-05 Roger Fong Remove statically used varyings from packing restrictions check. https://bugs.webkit.org/show_bug.cgi?id=136585. Reviewed by Dean Jackson. * src/compiler/translator/Compiler.cpp: (TCompiler::enforcePackingRestrictions): 2014-08-29 Csaba Osztrogonác Unreviwed, remove empty directories. * src/compiler/depgraph: Removed. * src/compiler/timing: Removed. * src/libGLESv2/renderer/shaders: Removed. * src/libGLESv2/renderer/shaders/compiled: Removed. 2014-08-11 Andy Estes [iOS] Get rid of iOS.xcconfig https://bugs.webkit.org/show_bug.cgi?id=135809 Reviewed by Joseph Pecoraro. All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection. * ANGLE.xcodeproj/project.pbxproj: * Configurations/Base.xcconfig: * Configurations/iOS.xcconfig: Removed. 2014-08-07 Brent Fulgham [Win] Unreviewed gardening. DebugSuffix targets should use our debugsuffix property sheet, and will therefore build to the proper output location with the proper suffix tags. Also, we must use the WebKit_Libraries environment variable, not a set of relative paths to the property sheets. * ANGLE.vcxproj/libEGL.vcxproj: Use 'debugsuffix.props' sheet. * ANGLE.vcxproj/libGLESv2.vcxproj: Ditto. * ANGLE.vcxproj/preprocessor.vcxproj: Ditto. * ANGLE.vcxproj/translator_common.vcxproj: Ditto. * ANGLE.vcxproj/translator_glsl.vcxproj: Ditto. * ANGLE.vcxproj/translator_hlsl.vcxproj: Ditto. * ANGLE.vcxproj/libEGLCommon.props: Use $(DebugSuffix) endings. * ANGLE.vcxproj/libGLESv2Common.props: Ditto. * ANGLE.vcxproj/translatorCommon.props: Output to 'lib' folder, not 'bin' folder. These are libraries! 2014-08-02 Brent Fulgham [Win] Unreviewed build fix. * src/libGLESv2/renderer/d3d11/BufferStorage11.cpp: (rx::BufferStorage11::copyData): Help compiler make decision about types. 2014-07-25 peavo@outlook.com [Win][ANGLE] Enable D3D11. https://bugs.webkit.org/show_bug.cgi?id=135296 Reviewed by Alex Christensen. Direct3D 11 is not enabled on Windows. * ANGLE.vcxproj/libGLESv2.vcxproj: Added files. * ANGLE.vcxproj/libGLESv2.vcxproj.filters: Ditto. * ANGLE.vcxproj/libGLESv2Common.props: Enable D3D11. * src/libGLESv2/precompiled.h: Header file does not exist, avoid include. * changes.diff: Updated diff. 2014-06-04 Alex Christensen Enable WebGL on Windows. https://bugs.webkit.org/show_bug.cgi?id=133503 Reviewed by Brent Fulgham. * changes.diff Recorded additional changes from ANGLE. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libEGL.vcxproj.filters: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj.filters: * include/EGL/egl.h: * include/EGL/eglsoftlinking.h: Added. * include/GLES2/gl2.h: * include/GLES2/gl2softlinking.h: Added. Resurrected soft linking headers from r153664. * src/libGLESv2/renderer/VertexBuffer.cpp: (rx::VertexBufferInterface::directStoragePossible): Compile fix for Win64. 2014-05-02 Alex Christensen Update ANGLE Windows build. https://bugs.webkit.org/show_bug.cgi?id=132456 Reviewed by Brent Fulgham. * ANGLE.vcxproj/libEGLCommon.props: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj.filters: * ANGLE.vcxproj/libGLESv2Common.props: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj.filters: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj.filters: * ANGLE.vcxproj/translator_hlsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: Updated ANGLE build. * src/ANGLE.sln: Removed. * src/build_angle.gyp: Removed. * src/commit.h: Added. * changes.diff: * src/libGLESv2/Program.cpp: (gl::InfoLog::append): Fixed typo. 2014-05-01 Alex Christensen Finish updating ANGLE. https://bugs.webkit.org/show_bug.cgi?id=132434 Reviewed by Dean Jackson. * ANGLE.xcodeproj/project.pbxproj: Removed Uniform.cpp which is no longer in ANGLE. * changes.diff: Added more changes from ANGLE which are already included in WebKit. Updated ANGLE source files to e7a453a5bd76705ccb151117fa844846d4aa90af. Long list of changes omitted. 2014-04-30 Alex Christensen Updated ANGLE. https://bugs.webkit.org/show_bug.cgi?id=132367 Reviewed by Dean Jackson. * ANGLE.plist: Updated and xml encoded. * ANGLE.xcodeproj/project.pbxproj: Added needed new source files. * changes.diff: Added to keep track of differences between WebKit's copy of ANGLE and the master repository. Updated ANGLE source files to e7a453a5bd76705ccb151117fa844846d4aa90af. Long list of changes omitted. 2014-03-25 Martin Robinson [GTK] Remove the autotools build https://bugs.webkit.org/show_bug.cgi?id=130717 Reviewed by Anders Carlsson. * GNUmakefile.am: Removed. 2014-03-14 Mark Rowe Fix the production build. Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't be at the expected relative path when working from installed source. * Configurations/Base.xcconfig: 2014-03-13 Tim Horton Fix relative paths to UseInternalSDK.xcconfig for ANGLE and WebKit/mac Rubber-stamped by Mark Rowe. One-too-few "..". * Configurations/Base.xcconfig: 2014-03-13 Radu Stavila Webkit not building on XCode 5.1 due to garbage collection no longer being supported https://bugs.webkit.org/show_bug.cgi?id=130087 Reviewed by Mark Rowe. Disable garbage collection on macosx when not using internal SDK. * Configurations/Base.xcconfig: 2014-02-24 Dean Jackson Unreviewed. This file should not be marked as executable (copied in from ANGLE). * include/KHR/khrplatform.h: 2014-02-23 David Kilzer ANGLE: Stop using unsafe strcpy method Reviewed by Dean Jackson. * include/GLSLANG/ShaderLang.h: - Drive-by fix for header documentation. * src/compiler/translator/ShaderLang.cpp: (ShGetInfoLog): (ShGetObjectCode): * src/libGLESv2/Program.cpp: (gl::InfoLog::append): - Switch to use strncpy(), and explicitly set NULL terminator at the end of the buffer. 2014-02-23 Brent Fulgham [WinCairo] Unreviewed build fix after r164565. * ANGLE.vcxproj/libEGL.vcxproj: Use correct path to files. * ANGLE.vcxproj/libGLESv2.vcxproj: Ditto. * ANGLE.vcxproj/libGLESv2.vcxproj.filters: Ditto. * ANGLE.vcxproj/preprocessor.vcxproj: Ditto. * ANGLE.vcxproj/translator_common.vcxproj: Ditto. * ANGLE.vcxproj/translator_common.vcxproj.filters: Ditto. * ANGLE.vcxproj/translator_glsl.vcxproj: Ditto. * ANGLE.vcxproj/translator_glsl.vcxproj.filters: Ditto. * ANGLE.vcxproj/translator_hlsl.vcxproj: Ditto. * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: Ditto. 2014-02-23 Dean Jackson Missing files from previous commit. 2014-02-23 Dean Jackson Update ANGLE to 836bd2176e5607b14846cf1fbc5932dbc91318f4 https://bugs.webkit.org/show_bug.cgi?id=129232 Reviewed by Brent Fulgham. I also reapplied some of our changes from previous updates, including disabling the clang deprecation warnings in some files, adding the Apple note about license and defining YY_NO_INPUT. Huge list of source changes omitted. 2013-12-18 Carlos Garcia Campos Unreviewed. Fix make distcheck. * GNUmakefile.am: 2013-12-17 Gustavo Noronha Silva [GTK] Some ANGLE headers missing from dist https://bugs.webkit.org/show_bug.cgi?id=125782 Reviewed by Carlos Garcia Campos. * GNUmakefile.am: add a few headers that were missing from the build, causing build failures when the system headers were incompatible. 2013-12-16 Alex Christensen Fixed Win64 build on VS2013. https://bugs.webkit.org/show_bug.cgi?id=125753 Reviewed by Brent Fulgham. * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/preprocessor.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj: Added correct PlatformToolset for 64-bit builds. 2013-12-13 Brent Fulgham [Win] Unreviewed build fix after r160548 I missed the ANGLE files, since we aren't building these on the Apple Windows port at the moment. * ANGLE.vcxproj/libEGL.vcxproj: Update to VS2013 * ANGLE.vcxproj/libGLESv2.vcxproj: Ditto * ANGLE.vcxproj/preprocessor.vcxproj: Ditto * ANGLE.vcxproj/translator_common.vcxproj: Ditto * ANGLE.vcxproj/translator_glsl.vcxproj: Ditto * ANGLE.vcxproj/translator_hlsl.vcxproj: Ditto 2013-12-06 Commit Queue Unreviewed, rolling out r159543. http://trac.webkit.org/changeset/159543 https://bugs.webkit.org/show_bug.cgi?id=125371 Build fix for mac no longer needed (Requested by rfong on #webkit). * ANGLE.xcodeproj/project.pbxproj: * src/compiler/glslang_tab.cpp: (yysyntax_error): (glslang_parse): * src/compiler/glslang_tab.h: * src/compiler/preprocessor/ExpressionParser.cpp: (yy_symbol_print): (yy_stack_print): (yy_reduce_print): (yytnamerr): (yysyntax_error): (yydestruct): (yyparse): 2013-12-05 Roger Fong [WebGL] Make sure we satisfy uniform and varying packing restrictions. https://bugs.webkit.org/show_bug.cgi?id=125124. Reviewed by Brent Fulgham. * src/compiler/Compiler.cpp: Add a check to enforcePackingRestrictions to ensure we make sure packing restrictions for varyings are satisfied as well. (TCompiler::TCompiler): (TCompiler::Init): (TCompiler::compile): (TCompiler::enforcePackingRestrictions): * src/compiler/ShHandle.h: Keep track of maximum varying vectors. 2013-12-05 Matthew Hanson Fix ANGLE build failures by re-comitting the changes in http://trac.webkit.org/changeset/154223 on top of the library updates introduced by http://trac.webkit.org/changeset/159533. Rubber-stamped by Babak Shafiei. * src/compiler/glslang.l: * src/compiler/glslang_lex.cpp: * src/compiler/preprocessor/Tokenizer.cpp: * src/compiler/preprocessor/Tokenizer.l: 2013-12-03 Daniel Bates ANGLE fails to build with trunk clang: unused constant kTraceBufferLen https://bugs.webkit.org/show_bug.cgi?id=125164 https://code.google.com/p/angleproject/issues/detail?id=534 Reviewed by Darin Adler. Move the definition of the constant kTraceBufferLen under the macro guard TRACE_ENABLED since it's only referenced in code guarded by TRACE_ENABLED. * src/compiler/debug.cpp: 2013-11-21 Alex Christensen Remove ANGLEGenerated from Windows build. https://bugs.webkit.org/show_bug.cgi?id=124759 Reviewed by Darin Adler. * ANGLE.vcxproj/ANGLEGenerated.vcxproj: Removed. * ANGLE.vcxproj/ANGLEGenerated.vcxproj.filters: Removed. 2013-11-21 Alex Christensen Unreviewed build fix. * src/libGLESv2/Constants.h: Added from checkout a60e0805721f62c28a55faf2df74472cc5fc91fc. 2013-11-21 Mark Rowe Fix an error in a few Xcode configuration setting files. Reviewed by Alexey Proskuryakov. * Configurations/Base.xcconfig: 2013-11-21 Brent Fulgham Unreviewed gardening to hide annoying *.user files when. * ANGLE.vcxproj: Added property svn:ignore. 2013-11-21 peavo@outlook.com [WinCairo] Building ANGLE libraries fails. https://bugs.webkit.org/show_bug.cgi?id=124679 Reviewed by Brent Fulgham. Added/removed files to/from project, and re-added constants.h file. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libEGL.vcxproj.filters: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj.filters: * ANGLE.vcxproj/libGLESv2Common.props: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj.filters: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj.filters: * ANGLE.vcxproj/translator_hlsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: * src/libGLESv2/libGLESv2.def: 2013-11-20 Sergio Correia ANGLE doesn't build with bison 3.0 https://bugs.webkit.org/show_bug.cgi?id=124642 Reviewed by Gyuyoung Kim. This is a reedition of r154109, now that ANGLE source has been updated in r159533. * src/compiler/glslang.y: Use %lex-param to set YYLEX_PARAM and stop using the deprecated YYID macro. 2013-11-20 Carlos Garcia Campos Unreviewed. Fix GTK build. * GNUmakefile.am: Remove duplicated entries. 2013-11-19 Martin Robinson Fix the GTK+ build after the ANGLE update in r159533 * GNUmakefile.am: Update the source list. 2013-11-19 Roger Fong Unreviewed. Build fix for Mac. * src/compiler/glslang_tab.cpp: (yysyntax_error): (yyerror): * src/compiler/glslang_tab.h: * src/compiler/preprocessor/ExpressionParser.cpp: (yysyntax_error): 2013-11-19 Roger Fong Unreviewed. Prospective build fix for GTK port following r159533. * GNUmakefile.am: 2013-11-19 Roger Fong Update ANGLE sources. https://bugs.webkit.org/show_bug.cgi?id=124615. Reviewed by Dean Jackson. Update ANGLE to checkout a60e0805721f62c28a55faf2df74472cc5fc91fc. Modify xcodeproj files as necessary, update plist. Stop using DerivedSources.make and just use the generated sources that are checked into ANGLE. Add a note to bison generated files indicating that Apple elects to distribute said files under the BSD license: ExpressionParser.cpp, glslang_tab.cpp, glslang_tab.h. * ANGLE.plist: * ANGLE.xcodeproj/project.pbxproj: * DerivedSources.make: Removed. * include/EGL/egl.h: * include/EGL/eglsoftlinking.h: Removed. * include/GLES2/gl2.h: * include/GLES2/gl2softlinking.h: Removed. * include/GLSLANG/ShaderLang.h: * include/KHR/khrplatform.h: * src/ANGLE.sln: Added. * src/build_angle.gypi: * src/common/debug.h: * src/common/event_tracer.cpp: Added. (gl::TraceGetTraceCategoryEnabledFlag): (gl::TraceAddTraceEvent): * src/common/event_tracer.h: Added. * src/common/version.h: * src/compiler/CodeGen.cpp: Added. (ConstructCompiler): (DeleteCompiler): * src/compiler/CodeGenGLSL.cpp: Removed. * src/compiler/CodeGenHLSL.cpp: Removed. * src/compiler/Common.h: (NewPoolTString): * src/compiler/Compiler.cpp: (TCompiler::Init): (TCompiler::compile): (TCompiler::InitBuiltInSymbolTable): (TCompiler::clearResults): (TCompiler::collectVariables): * src/compiler/ConstantUnion.h: * src/compiler/DetectDiscontinuity.cpp: * src/compiler/InfoSink.h: * src/compiler/InitializeDll.cpp: (InitProcess): (DetachProcess): * src/compiler/InitializeDll.h: * src/compiler/InitializeGLPosition.cpp: Added. (InitializeGLPosition::visitAggregate): (InitializeGLPosition::insertCode): * src/compiler/InitializeGLPosition.h: Added. (InitializeGLPosition::InitializeGLPosition): (InitializeGLPosition::visitBinary): (InitializeGLPosition::visitUnary): (InitializeGLPosition::visitSelection): (InitializeGLPosition::visitLoop): (InitializeGLPosition::visitBranch): * src/compiler/InitializeGlobals.h: * src/compiler/InitializeParseContext.cpp: (InitializeParseContextIndex): (FreeParseContextIndex): (SetGlobalParseContext): (GetGlobalParseContext): * src/compiler/InitializeParseContext.h: * src/compiler/IntermTraverse.cpp: (TIntermSymbol::traverse): (TIntermConstantUnion::traverse): (TIntermBinary::traverse): (TIntermUnary::traverse): (TIntermAggregate::traverse): (TIntermSelection::traverse): (TIntermLoop::traverse): (TIntermBranch::traverse): * src/compiler/Intermediate.cpp: (GetHigherPrecision): (getOperatorString): (TIntermLoop::replaceChildNode): (TIntermBranch::replaceChildNode): (TIntermBinary::replaceChildNode): (TIntermUnary::replaceChildNode): (TIntermAggregate::replaceChildNode): (TIntermSelection::replaceChildNode): (TIntermOperator::isAssignment): (TIntermediate::promoteConstantUnion): * src/compiler/MapLongVariableNames.cpp: * src/compiler/MapLongVariableNames.h: * src/compiler/NodeSearch.h: Added. (sh::NodeSearchTraverser::NodeSearchTraverser): (sh::NodeSearchTraverser::found): (sh::NodeSearchTraverser::search): (sh::FindDiscard::visitBranch): (sh::FindSideEffectRewriting::visitBinary): * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::visitSelection): (TOutputGLSLBase::visitAggregate): (TOutputGLSLBase::visitLoop): * src/compiler/OutputGLSLBase.h: * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitBranch): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::addConstructor): * src/compiler/OutputHLSL.h: * src/compiler/ParseContext.cpp: Added. (TParseContext::parseVectorFields): (TParseContext::parseMatrixFields): (TParseContext::recover): (TParseContext::error): (TParseContext::warning): (TParseContext::trace): (TParseContext::assignError): (TParseContext::unaryOpError): (TParseContext::binaryOpError): (TParseContext::precisionErrorCheck): (TParseContext::lValueErrorCheck): (TParseContext::constErrorCheck): (TParseContext::integerErrorCheck): (TParseContext::globalErrorCheck): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::voidErrorCheck): (TParseContext::boolErrorCheck): (TParseContext::samplerErrorCheck): (TParseContext::structQualifierErrorCheck): (TParseContext::parameterSamplerErrorCheck): (TParseContext::containsSampler): (TParseContext::arraySizeErrorCheck): (TParseContext::arrayQualifierErrorCheck): (TParseContext::arrayTypeErrorCheck): (TParseContext::arrayErrorCheck): (TParseContext::nonInitConstErrorCheck): (TParseContext::nonInitErrorCheck): (TParseContext::paramErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::supportsExtension): (TParseContext::isExtensionEnabled): (TParseContext::findFunction): (TParseContext::executeInitializer): (TParseContext::areAllChildConst): (TParseContext::addConstructor): (TParseContext::foldConstConstructor): (TParseContext::constructBuiltIn): (TParseContext::constructStruct): (TParseContext::addConstVectorNode): (TParseContext::addConstMatrixNode): (TParseContext::addConstArrayNode): (TParseContext::addConstStruct): (TParseContext::enterStructDeclaration): (TParseContext::exitStructDeclaration): (TParseContext::structNestingErrorCheck): (TParseContext::addIndexExpression): (PaParseStrings): * src/compiler/ParseContext.h: Added. (TParseContext::TParseContext): (TParseContext::numErrors): (TParseContext::infoSink): (TParseContext::pragma): (TParseContext::extensionBehavior): * src/compiler/ParseHelper.cpp: Removed. * src/compiler/ParseHelper.h: Removed. * src/compiler/PoolAlloc.cpp: (InitializePoolIndex): (FreePoolIndex): (GetGlobalPoolAllocator): (SetGlobalPoolAllocator): * src/compiler/PoolAlloc.h: (pool_allocator::pool_allocator): * src/compiler/SearchSymbol.h: * src/compiler/ShHandle.h: (TCompiler::getVaryings): * src/compiler/ShaderLang.cpp: (checkVariableMaxLengths): (ShInitialize): (ShFinalize): (ShConstructCompiler): (ShCompile): (ShGetInfo): (ShGetVariableInfo): (ShCheckVariablesWithinPackingLimits): * src/compiler/SymbolTable.cpp: (TSymbolTable::~TSymbolTable): * src/compiler/SymbolTable.h: (TSymbol::TSymbol): (TSymbolTableLevel::insert): (TSymbolTable::push): (TSymbolTable::pop): (TSymbolTable::findBuiltIn): (TSymbolTable::relateToExtension): (TSymbolTable::setDefaultPrecision): (TSymbolTable::getDefaultPrecision): (TSymbolTable::supportsPrecision): * src/compiler/Types.h: (NewPoolTFieldList): (TType::TType): (TType::setNominalSize): (TPublicType::setAggregate): * src/compiler/UnfoldShortCircuit.cpp: (sh::UnfoldShortCircuit::visitBinary): (sh::UnfoldShortCircuit::visitSelection): * src/compiler/UnfoldShortCircuit.h: * src/compiler/UnfoldShortCircuitAST.cpp: Added. (UnfoldShortCircuitAST::visitBinary): (UnfoldShortCircuitAST::updateTree): * src/compiler/UnfoldShortCircuitAST.h: Added. (UnfoldShortCircuitAST::UnfoldShortCircuitAST): (UnfoldShortCircuitAST::NodeUpdateEntry::NodeUpdateEntry): * src/compiler/Uniform.cpp: (sh::Uniform::Uniform): * src/compiler/Uniform.h: * src/compiler/ValidateLimitations.cpp: (ValidateLimitations::validateFunctionCall): (ValidateLimitations::validateOperation): * src/compiler/VariableInfo.cpp: (TVariableInfo::TVariableInfo): (CollectVariables::CollectVariables): (CollectVariables::visitSymbol): (CollectVariables::visitAggregate): * src/compiler/VariableInfo.h: * src/compiler/debug.cpp: * src/compiler/depgraph/DependencyGraph.cpp: * src/compiler/depgraph/DependencyGraphBuilder.cpp: (TDependencyGraphBuilder::visitBinary): * src/compiler/generate_parser.sh: * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (input): (yyerror): (int_constant): (float_constant): (glslang_scan): * src/compiler/glslang_tab.cpp: (yysyntax_error): (glslang_parse): * src/compiler/glslang_tab.h: * src/compiler/intermediate.h: (TIntermSymbol::hasSideEffects): (TIntermSymbol::replaceChildNode): (TIntermConstantUnion::hasSideEffects): (TIntermConstantUnion::getIConst): (TIntermConstantUnion::getFConst): (TIntermConstantUnion::getBConst): (TIntermConstantUnion::replaceChildNode): (TIntermOperator::hasSideEffects): (TIntermBinary::hasSideEffects): (TIntermUnary::hasSideEffects): (TIntermAggregate::hasSideEffects): (TIntermSelection::hasSideEffects): (TIntermTraverser::~TIntermTraverser): (TIntermTraverser::incrementDepth): (TIntermTraverser::decrementDepth): (TIntermTraverser::getParentNode): * src/compiler/localintermediate.h: * src/compiler/parseConst.cpp: * src/compiler/preprocessor/ExpressionParser.cpp: (yy_symbol_print): (yy_stack_print): (yy_reduce_print): (yystrlen): (yystpcpy): (yytnamerr): (yysyntax_error): (yydestruct): (yyparse): * src/compiler/preprocessor/ExpressionParser.y: * src/compiler/preprocessor/Preprocessor.cpp: (pp::Preprocessor::setMaxTokenLength): (pp::Preprocessor::lex): * src/compiler/preprocessor/Preprocessor.h: * src/compiler/preprocessor/Tokenizer.cpp: (pp::Tokenizer::Tokenizer): (pp::Tokenizer::lex): * src/compiler/preprocessor/Tokenizer.h: (pp::Tokenizer::setMaxTokenLength): * src/compiler/preprocessor/Tokenizer.l: * src/compiler/preprocessor/generate_parser.sh: * src/compiler/preprocessor/preprocessor.vcxproj: Added. * src/compiler/preprocessor/preprocessor.vcxproj.filters: Added. * src/compiler/timing/RestrictFragmentShaderTiming.cpp: * src/compiler/translator.vcxproj: Added. * src/compiler/translator.vcxproj.filters: Added. * src/compiler/util.cpp: (atof_clamp): (atoi_clamp): * src/compiler/util.h: * src/libEGL/Surface.cpp: (egl::Surface::checkForOutOfDateSwapChain): * src/libEGL/libEGL.cpp: * src/libEGL/libEGL.rc: * src/libEGL/libEGL.vcxproj: Added. * src/libEGL/libEGL.vcxproj.filters: Added. * src/libGLESv2/Buffer.cpp: (gl::Buffer::bufferData): (gl::Buffer::bufferSubData): (gl::Buffer::size): (gl::Buffer::getIndexRangeCache): * src/libGLESv2/Buffer.h: * src/libGLESv2/Context.cpp: (gl::Context::applyTextures): (gl::Context::getBoundFramebufferTextureSerials): * src/libGLESv2/Context.h: (gl::Context::getRenderer): * src/libGLESv2/Framebuffer.h: * src/libGLESv2/ProgramBinary.cpp: (gl::DiscardWorkaround): (gl::ProgramBinary::load): (gl::ProgramBinary::link): (gl::ProgramBinary::linkAttributes): (gl::AttributeSorter::AttributeSorter): (gl::ProgramBinary::initAttributesByLayout): (gl::ProgramBinary::sortAttributesByLayout): * src/libGLESv2/ProgramBinary.h: * src/libGLESv2/Renderbuffer.cpp: (gl::RenderbufferTexture2D::getTextureSerial): (gl::RenderbufferTextureCubeMap::getTextureSerial): (gl::Renderbuffer::getTextureSerial): * src/libGLESv2/Renderbuffer.h: (gl::RenderbufferStorage::getTextureSerial): * src/libGLESv2/Shader.cpp: (gl::Shader::parseVaryings): (gl::Shader::uncompile): * src/libGLESv2/Shader.h: * src/libGLESv2/Texture.cpp: (gl::TextureCubeMap::storage): * src/libGLESv2/Uniform.cpp: (gl::Uniform::Uniform): (gl::Uniform::~Uniform): (gl::Uniform::isArray): (gl::Uniform::elementCount): * src/libGLESv2/Uniform.h: * src/libGLESv2/constants.h: Removed. * src/libGLESv2/libGLESv2.def: * src/libGLESv2/libGLESv2.rc: * src/libGLESv2/libGLESv2.vcxproj: Added. * src/libGLESv2/libGLESv2.vcxproj.filters: Added. * src/libGLESv2/precompiled.h: * src/libGLESv2/renderer/Image11.cpp: (rx::Image11::generateMipmap): (rx::Image11::loadData): (rx::Image11::loadCompressedData): (rx::Image11::copy): (rx::Image11::createStagingTexture): (rx::Image11::map): * src/libGLESv2/renderer/Image11.h: * src/libGLESv2/renderer/IndexBuffer.cpp: (rx::IndexBufferInterface::mapBuffer): (rx::StaticIndexBufferInterface::getIndexRangeCache): * src/libGLESv2/renderer/IndexBuffer.h: * src/libGLESv2/renderer/IndexBuffer11.cpp: (rx::IndexBuffer11::mapBuffer): * src/libGLESv2/renderer/IndexDataManager.cpp: (rx::IndexDataManager::prepareIndexData): (rx::IndexDataManager::getCountingIndices): * src/libGLESv2/renderer/IndexRangeCache.cpp: Added. (rx::IndexRangeCache::addRange): (rx::IndexRangeCache::invalidateRange): (rx::IndexRangeCache::findRange): (rx::IndexRangeCache::clear): (rx::IndexRangeCache::IndexRange::IndexRange): (rx::IndexRangeCache::IndexRange::operator<): (rx::IndexRangeCache::IndexBounds::IndexBounds): * src/libGLESv2/renderer/IndexRangeCache.h: Added. * src/libGLESv2/renderer/InputLayoutCache.cpp: (rx::InputLayoutCache::InputLayoutCache): (rx::InputLayoutCache::clear): (rx::InputLayoutCache::markDirty): (rx::InputLayoutCache::applyVertexBuffers): (rx::InputLayoutCache::hashInputLayout): (rx::InputLayoutCache::compareInputLayouts): * src/libGLESv2/renderer/InputLayoutCache.h: (rx::InputLayoutCache::InputLayoutKey::begin): (rx::InputLayoutCache::InputLayoutKey::end): * src/libGLESv2/renderer/RenderTarget11.cpp: (rx::RenderTarget11::getTexture): (rx::RenderTarget11::getRenderTargetView): (rx::RenderTarget11::getDepthStencilView): (rx::RenderTarget11::getShaderResourceView): * src/libGLESv2/renderer/RenderTarget11.h: * src/libGLESv2/renderer/Renderer.cpp: (rx::Renderer::initializeCompiler): * src/libGLESv2/renderer/Renderer.h: * src/libGLESv2/renderer/Renderer11.cpp: (rx::Renderer11::initialize): (rx::Renderer11::applyPrimitiveType): (rx::Renderer11::applyRenderTarget): (rx::Renderer11::drawLineLoop): (rx::Renderer11::drawTriangleFan): (rx::Renderer11::applyUniforms): (rx::Renderer11::clear): (rx::Renderer11::markAllStateDirty): (rx::Renderer11::copyImage): (rx::Renderer11::compileToExecutable): (rx::Renderer11::getRenderTargetResource): (rx::Renderer11::blitRenderbufferRect): * src/libGLESv2/renderer/Renderer11.h: * src/libGLESv2/renderer/Renderer9.cpp: (rx::Renderer9::initialize): (rx::Renderer9::setViewport): (rx::Renderer9::drawLineLoop): (rx::Renderer9::compileToExecutable): * src/libGLESv2/renderer/Renderer9.h: * src/libGLESv2/renderer/SwapChain.h: * src/libGLESv2/renderer/SwapChain11.cpp: (rx::SwapChain11::resetOffscreenTexture): (rx::SwapChain11::reset): (rx::SwapChain11::swapRect): * src/libGLESv2/renderer/SwapChain9.cpp: (rx::convertInterval): * src/libGLESv2/renderer/TextureStorage11.cpp: (rx::TextureStorage11::IsTextureFormatRenderable): (rx::TextureStorage11::generateMipmapLayer): (rx::TextureStorage11_Cube::getRenderTarget): * src/libGLESv2/renderer/VertexBuffer.cpp: (rx::VertexBufferInterface::storeVertexAttributes): (rx::VertexBufferInterface::storeRawData): (rx::VertexBufferInterface::reserveVertexSpace): (rx::StaticVertexBufferInterface::lookupAttribute): (rx::StaticVertexBufferInterface::storeVertexAttributes): * src/libGLESv2/renderer/VertexBuffer.h: * src/libGLESv2/renderer/VertexBuffer11.cpp: (rx::VertexBuffer11::getSpaceRequired): * src/libGLESv2/renderer/VertexBuffer11.h: * src/libGLESv2/renderer/VertexBuffer9.cpp: (rx::VertexBuffer9::storeVertexAttributes): (rx::VertexBuffer9::getSpaceRequired): (rx::VertexBuffer9::requiresConversion): (rx::VertexBuffer9::getVertexSize): (rx::VertexBuffer9::spaceRequired): * src/libGLESv2/renderer/VertexBuffer9.h: * src/libGLESv2/renderer/VertexDataManager.cpp: (rx::elementsInBuffer): (rx::StreamingBufferElementCount): (rx::VertexDataManager::prepareVertexData): * src/libGLESv2/renderer/VertexDataManager.h: * src/libGLESv2/renderer/renderer11_utils.cpp: (gl_d3d11::ConvertTextureFormat): * src/libGLESv2/renderer/shaders/compiled/clear11vs.h: * src/libGLESv2/renderer/shaders/compiled/clearmultiple11ps.h: * src/libGLESv2/renderer/shaders/compiled/clearsingle11ps.h: * src/libGLESv2/renderer/shaders/compiled/componentmaskps.h: * src/libGLESv2/renderer/shaders/compiled/flipyvs.h: * src/libGLESv2/renderer/shaders/compiled/luminanceps.h: * src/libGLESv2/renderer/shaders/compiled/passthrough11vs.h: * src/libGLESv2/renderer/shaders/compiled/passthroughlum11ps.h: * src/libGLESv2/renderer/shaders/compiled/passthroughlumalpha11ps.h: * src/libGLESv2/renderer/shaders/compiled/passthroughps.h: * src/libGLESv2/renderer/shaders/compiled/passthroughrgb11ps.h: * src/libGLESv2/renderer/shaders/compiled/passthroughrgba11ps.h: * src/libGLESv2/renderer/shaders/compiled/standardvs.h: * src/libGLESv2/renderer/shaders/generate_shaders.bat: * src/libGLESv2/utilities.cpp: (gl::ComputeTypeSize): * src/libGLESv2/utilities.h: * src/third_party/murmurhash/MurmurHash3.cpp: (rotl32): (rotl64): (getblock): (fmix): (MurmurHash3_x86_32): (MurmurHash3_x86_128): (MurmurHash3_x64_128): * src/third_party/murmurhash/MurmurHash3.h: * src/third_party/trace_event: Added. * src/third_party/trace_event/trace_event.h: Added. (gl::TraceEvent::TraceID::TraceID): (gl::TraceEvent::TraceID::data): (gl::TraceEvent::TraceStringWithCopy::TraceStringWithCopy): (gl::TraceEvent::TraceStringWithCopy::operator const char* ): (gl::TraceEvent::setTraceValue): (gl::TraceEvent::addTraceEvent): (gl::TraceEvent::TraceEndOnScopeClose::TraceEndOnScopeClose): (gl::TraceEvent::TraceEndOnScopeClose::~TraceEndOnScopeClose): (gl::TraceEvent::TraceEndOnScopeClose::initialize): (gl::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled): (gl::TraceEvent::SamplingStateScope::SamplingStateScope): (gl::TraceEvent::SamplingStateScope::~SamplingStateScope): (gl::TraceEvent::SamplingStateScope::current): (gl::TraceEvent::SamplingStateScope::set): 2013-11-18 Mark Rowe Use hw.activecpu for determining how many processes to spawn. It's documented as the preferred way to determine the number of threads or processes to create in a SMP aware application. Rubber-stamped by Tim Horton. * ANGLE.xcodeproj/project.pbxproj: 2013-11-06 Dean Jackson kTraceBufferLen is unused in default builds https://bugs.webkit.org/show_bug.cgi?id=123941 Reviewed by Tim Horton. kTraceBufferLen is not used in debug.cpp if TRACE_ENABLED is not defined. This causes a warning in newer builds of clang. For now, skip warnings on unused variables until we update from ANGLE. * src/compiler/debug.cpp: Add unused-variable ignore pragma. 2013-10-24 Mark Rowe Remove references to OS X 10.7 from Xcode configuration settings. Now that we're not building for OS X 10.7 they're no longer needed. Reviewed by Anders Carlsson. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2013-10-24 Mark Rowe Prepare for the mysterious future. Reviewed by David Kilzer. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2013-10-10 Mark Rowe WebKit should always build against an SDK. Have all projects default to building against the OS X Internal SDK for the Production configuration. For the Debug and Release configurations, look for UseInternalSDK.xcconfig to determine whether the OS X Internal SDK should be used. If not, use the normal OS X SDK. Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2013-10-08 Alex Christensen Generate pdb files for debugging ANGLE DLLs. https://bugs.webkit.org/show_bug.cgi?id=122530 Reviewed by Brent Fulgham. * ANGLE.vcxproj/libEGLCommon.props: * ANGLE.vcxproj/libGLESv2Common.props: Generate debug information. 2013-10-03 Dan Bernstein [mac] Build failure when the source directory is not named ANGLE https://bugs.webkit.org/show_bug.cgi?id=122307 Reviewed by Mark Rowe. * ANGLE.xcodeproj/project.pbxproj: Ensure that the symlink to SRCROOT in DerivedSources/ANGLE is named ANGLE. 2013-09-29 Darin Adler Take some Xcode advice about turning on additional warnings in ANGLE and gtest https://bugs.webkit.org/show_bug.cgi?id=122087 Reviewed by Mark Rowe. * Configurations/Base.xcconfig: Add some of the warnings that Xcode 5 suggested. * src/compiler/preprocessor/Tokenizer.l: Defined YY_NO_INPUT so we don't compile an unused function and get a warning. 2013-09-29 Darin Adler Use RenderElement instead of RenderObject in many places https://bugs.webkit.org/show_bug.cgi?id=122078 Reviewed by Andreas Kling. * ANGLE.xcodeproj/project.pbxproj: Let Xcode do its thing to this file. 2013-09-24 Mark Rowe WebKit should build against the Xcode default toolchain when targeting OS X 10.8 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2013-09-06 peavo@outlook.com [Win][WebGL] WebGL rendering is slow. https://bugs.webkit.org/show_bug.cgi?id=120841 Reviewed by Brent Fulgham. Rendering WebGL content is slow on Windows, because lots of debug information is written to debug.txt. * ANGLE.vcxproj/ANGLERelease.props: Disable logging in release builds. 2013-09-05 Dan Bernstein INSTALL_PATH_PREFIX is used even when not installing https://bugs.webkit.org/show_bug.cgi?id=120818 Reviewed by Darin Adler. * Configurations/ANGLE.xcconfig: Changed the definition of PRIVATE_HEADERS_FOLDER_PATH to include INSTALL_PATH_PREFIX only when installing. 2013-08-17 David Kilzer ANGLE fails to build with trunk clang: error: 'register' storage class specifier is deprecated [-Werror,-Wdeprecated-register] Reviewed by Darin Adler. * src/compiler/glslang.l: * src/compiler/glslang_lex.cpp: * src/compiler/preprocessor/Tokenizer.cpp: * src/compiler/preprocessor/Tokenizer.l: Add pragma statements to ignore -Wdeprecated-register warnings in generated code. Also ignore -Wunknown-pragmas so this doesn't cause a build failure in older versions of clang. 2013-08-16 Commit Queue Unreviewed, rolling out r153749. http://trac.webkit.org/changeset/153749 https://bugs.webkit.org/show_bug.cgi?id=119892 The bison generation of the glslang* files has now been fixed. (Requested by zdobersek on #webkit). * GNUmakefile.am: Preserve the libANGLE.la dependency on the ANGLE's GNUmakefile.am. 2013-08-15 Allan Sandfeld Jensen ANGLE doesn't build with bison 3.0 https://bugs.webkit.org/show_bug.cgi?id=119798 Reviewed by Antti Koivisto. Make glslang.y compatible with bison 3.0, by using %lex-param to set YYLEX_PARAM and getting rid of useless YYID macro. * src/compiler/glslang.y: 2013-08-09 Zoltan Arvai [Qt] Buidfix after r153664. Adding ANGLE_WEBKIT_WIN definition. https://bugs.webkit.org/show_bug.cgi?id=119577 Reviewed by Allan Sandfeld Jensen. * Target.pri: 2013-08-08 Alex Christensen Link to correct DirectX libraries for Win64 ANGLE build. https://bugs.webkit.org/show_bug.cgi?id=119600 Reviewed by Brent Fulgham. * ANGLE.vcxproj/DirectX32.props: Added with x86 DirectX library directory. * ANGLE.vcxproj/DirectX64.props: Added with x64 DirectX library directory. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj: Use DirectX32.props and DirectX64.props. * ANGLE.vcxproj/libEGLCommon.props: * ANGLE.vcxproj/libGLESv2Common.props: Removed DirectX library directory. 2013-07-23 David Farler Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN https://bugs.webkit.org/show_bug.cgi?id=117762 Reviewed by Mark Rowe. * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS. 2013-08-06 Zan Dobersek webkit-gtk fails to build with bison-3.0 https://bugs.webkit.org/show_bug.cgi?id=119373 Reviewed by Gustavo Noronha Silva. * GNUmakefile.am: Stop relying on generated glslang_tab.(cpp|h) and glslang.cpp sources as Bison 3.0 produces non-compilable source code. Instead, compile these pregenerated files as they're included in the tree. Originally, the ANGLE source tree provides these files as generated by Bison 2.7, but they're at the moment regenerated with Bison 2.3 when the third-party ANGLE source is being updated. 2013-08-05 Alex Christensen Added optimizations to Windows ANGLE builds. https://bugs.webkit.org/show_bug.cgi?id=119500 Reviewed by Brent Fulgham. * ANGLE.vcxproj/ANGLERelease.props: Added. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/preprocessor.vcxproj: * ANGLE.vcxproj/translator_common.vcxproj: * ANGLE.vcxproj/translator_glsl.vcxproj: * ANGLE.vcxproj/translator_hlsl.vcxproj: Use ANGLERelease.props for Release, Release_WinCairo, and Production configurations. 2013-08-02 Alex Christensen Soft link ANGLE on Windows. https://bugs.webkit.org/show_bug.cgi?id=119452 Reviewed by Dean Jackson. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libEGL.vcxproj.filters: * ANGLE.vcxproj/libGLESv2.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj.filters: Added soft linking headers. * ANGLE.vcxproj/libEGLCommon.props: * ANGLE.vcxproj/libGLESv2Common.props: * ANGLE.vcxproj/translatorCommon.props: Added ANGLE_WEBKIT_WIN macro definition for egl.h and gl2.h. * include/EGL/egl.h: * include/GLES2/gl2.h: Conditionally include soft linking headers based on ANGLE_WEBKIT_WIN macro. * include/EGL/eglsoftlinking.h: Added. * include/GLES2/gl2softlinking.h: Added. 2013-08-01 Alex Christensen Fixed wrong static_casting in ANGLE from r153064. https://bugs.webkit.org/show_bug.cgi?id=119296 Reviewed by Dean Jackson. * src/compiler/Intermediate.cpp: (TIntermediate::promoteConstantUnion): Undid erroneous static_cast change. * src/compiler/intermediate.h: (TIntermConstantUnion::getIConst): (TIntermConstantUnion::getFConst): (TIntermConstantUnion::getBConst): Made getters use size_t instead of int. 2013-07-29 Carlos Garcia Campos Unreviewed. Fix make distcheck. * GNUmakefile.am: Add missing header files to compilation. 2013-07-29 Alex Christensen Separated translator into preprocessor, translator_common, translator_hlsl (for libGLESv2), and translator_glsl (for ANGLEWebKitBridge). https://bugs.webkit.org/show_bug.cgi?id=119221 Reviewed by Brent Fulgham. * ANGLE.vcxproj/ANGLEGenerated.vcxproj: Removed unused preprocessor definitions. * ANGLE.vcxproj/libEGL.vcxproj: * ANGLE.vcxproj/libGLESv2.vcxproj: Removed dependency on removed translator project. * ANGLE.vcxproj/libGLESv2Common.props: Link to translator_hlsl libraries. * ANGLE.vcxproj/preprocessor.vcxproj: Added. * ANGLE.vcxproj/preprocessor.vcxproj.filters: Added. * ANGLE.vcxproj/translator.vcxproj: Removed. * ANGLE.vcxproj/translator.vcxproj.filters: Removed. * ANGLE.vcxproj/translator_common.vcxproj: Added. * ANGLE.vcxproj/translator_common.vcxproj.filters: Added. * ANGLE.vcxproj/translator_glsl.vcxproj: Added. * ANGLE.vcxproj/translator_glsl.vcxproj.filters: Added. * ANGLE.vcxproj/translator_hlsl.vcxproj: Added. * ANGLE.vcxproj/translator_hlsl.vcxproj.filters: Added. 2013-07-26 Alex Christensen Added module definition file for building libEGL. https://bugs.webkit.org/show_bug.cgi?id=119162 Reviewed by Brent Fulgham. * ANGLE.vcxproj/libEGLCommon.props: Added reference to libEGL.def. 2013-07-25 Alex Christensen Made Windows build system for ANGLE and removed existing broken build system. Removed empty src/libGLESv2/shaders directory and old README files. https://bugs.webkit.org/show_bug.cgi?id=119103 Reviewed by Brent Fulgham. * ANGLE.vcxproj: Added. * ANGLE.vcxproj/ANGLEGenerated.vcxproj: Added. * ANGLE.vcxproj/ANGLEGenerated.vcxproj.filters: Added. * ANGLE.vcxproj/libEGL.vcxproj: Added. * ANGLE.vcxproj/libEGL.vcxproj.filters: Added. * ANGLE.vcxproj/libEGLCommon.props: Added. * ANGLE.vcxproj/libGLESv2.vcxproj: Added. * ANGLE.vcxproj/libGLESv2.vcxproj.filters: Added. * ANGLE.vcxproj/libGLESv2Common.props: Added. * ANGLE.vcxproj/translator.vcxproj: Added. * ANGLE.vcxproj/translator.vcxproj.filters: Added. * ANGLE.vcxproj/translatorCommon.props: Added. * src/ANGLE.sln: Removed. * src/compiler/preprocessor/preprocessor.vcxproj: Removed. * src/compiler/preprocessor/preprocessor.vcxproj.filters: Removed. * src/compiler/translator_common.vcxproj: Removed. * src/compiler/translator_common.vcxproj.filters: Removed. * src/compiler/translator_hlsl.vcxproj: Removed. * src/compiler/translator_hlsl.vcxproj.filters: Removed. * src/libEGL/README: Removed. * src/libEGL/libEGL.vcxproj: Removed. * src/libEGL/libEGL.vcxproj.filters: Removed. * src/libGLESv2/README: Removed. * src/libGLESv2/libGLESv2.vcxproj: Removed. * src/libGLESv2/libGLESv2.vcxproj.filters: Removed. * src/libGLESv2/shaders: Removed. 2013-07-24 Alex Christensen Generate derived files in ANGLE at build time rather than when updating from upstream. https://bugs.webkit.org/show_bug.cgi?id=118872 Reviewed by Mark Rowe. * ANGLE.xcodeproj/project.pbxproj: Made Derived Sources target which calls DerivedSources.make, moved generated files into Derived Sources group. * DerivedSources.make: Added. 2013-07-24 Zan Dobersek Unreviewed. Setting the svn:eol-style=native property on the ANGLE.sln file. * src/ANGLE.sln: Added property svn:eol-style. 2013-07-24 Gabor Abraham [Qt] Buildfix after r153064. Add Uniform files to the Target.pri. Reviewed by Csaba Osztrogonác. * Target.pri: 2013-07-23 Alex Christensen Updated ANGLE to latest git commit (047373aa3eb408be62be52ade840fa5f11e72337). Added missing ANGLE files except unused tests, extensions, samples, build, and .git directories. Ran Bison after making some changes to fix compile errors (see below). https://bugs.webkit.org/show_bug.cgi?id=118550 Reviewed by Dean Jackson. * ANGLE.plist: Updated from svn to git. * ANGLE.xcodeproj/project.pbxproj: Renamed DetectRecursion to DetectCallDepth. * AUTHORS: Added. * CONTRIBUTORS: Added. * DEPS: Added. * GNUmakefile.am: Renamed DetectRecursion to DetectCallDepth and added Uniform.cpp. * LICENSE: Added. * README.chromium: Added. * Target.pri: Renamed DetectRecursion to DetectCallDepth. * codereview.settings: Added. * include/EGL/eglext.h: * include/GLES2/gl2ext.h: * include/GLSLANG/ShaderLang.h: * src/ANGLE.sln: Added. * src/build_angle.gyp: Added. * src/build_angle.gypi: Added. * src/common/RefCountObject.cpp: * src/common/angleutils.h: (ArraySize): (SafeRelease): * src/common/debug.cpp: * src/common/debug.h: * src/common/system.h: * src/common/version.h: * src/compiler/64bit-lexer-safety.patch: Added. * src/compiler/BaseTypes.h: (getQualifierString): * src/compiler/CodeGenHLSL.cpp: (ConstructCompiler): * src/compiler/Common.h: * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::Init): (TCompiler::compile): (TCompiler::InitBuiltInSymbolTable): (TCompiler::detectCallDepth): (TCompiler::limitExpressionComplexity): (TCompiler::getResources): * src/compiler/ConstantUnion.h: (ConstantUnion::ConstantUnion): * src/compiler/DetectCallDepth.cpp: Added. (DetectCallDepth::FunctionNode::FunctionNode): (DetectCallDepth::FunctionNode::getName): (DetectCallDepth::FunctionNode::addCallee): (DetectCallDepth::FunctionNode::detectCallDepth): (DetectCallDepth::FunctionNode::reset): (DetectCallDepth::DetectCallDepth): (DetectCallDepth::~DetectCallDepth): (DetectCallDepth::visitAggregate): (DetectCallDepth::checkExceedsMaxDepth): (DetectCallDepth::resetFunctionNodes): (DetectCallDepth::detectCallDepthForFunction): (DetectCallDepth::detectCallDepth): (DetectCallDepth::findFunctionByName): * src/compiler/DetectCallDepth.h: Added. (DetectCallDepth::getInfoSink): * src/compiler/DetectRecursion.cpp: Removed. * src/compiler/DetectRecursion.h: Removed. * src/compiler/Diagnostics.cpp: (TDiagnostics::writeInfo): * src/compiler/ForLoopUnroll.cpp: (ForLoopUnroll::evaluateIntConstant): * src/compiler/InfoSink.cpp: (TInfoSinkBase::prefix): (TInfoSinkBase::location): (TInfoSinkBase::message): * src/compiler/InfoSink.h: * src/compiler/Initialize.cpp: (InsertBuiltInFunctions): (IdentifyBuiltIns): (InitExtensionBehavior): * src/compiler/Initialize.h: * src/compiler/Intermediate.cpp: (TIntermediate::addSymbol): (TIntermediate::addBinaryMath): (TIntermediate::addAssign): (TIntermediate::addIndex): (TIntermediate::addUnaryMath): (TIntermediate::setAggregateOperator): (TIntermediate::addConversion): (TIntermediate::growAggregate): (TIntermediate::makeAggregate): (TIntermediate::addSelection): (TIntermediate::addComma): (TIntermediate::addConstantUnion): (TIntermediate::addSwizzle): (TIntermediate::addLoop): (TIntermediate::addBranch): (TIntermUnary::promote): (TIntermBinary::promote): (CompareStruct): (CompareStructure): (TIntermConstantUnion::fold): Added implied static_casts to fix compiling errors on Mac. (TIntermediate::promoteConstantUnion): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::visitSymbol): * src/compiler/OutputGLSL.h: * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::writeVariableType): (TOutputGLSLBase::writeConstantUnion): (TOutputGLSLBase::visitBinary): (TOutputGLSLBase::visitAggregate): (TOutputGLSLBase::getTypeName): (TOutputGLSLBase::structDeclared): (TOutputGLSLBase::declareStruct): * src/compiler/OutputGLSLBase.h: * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::getUniforms): (sh::OutputHLSL::header): (sh::OutputHLSL::visitSymbol): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::argumentString): (sh::OutputHLSL::typeString): (sh::OutputHLSL::textureString): (sh::OutputHLSL::initializer): (sh::OutputHLSL::addConstructor): (sh::OutputHLSL::writeConstantUnion): (sh::OutputHLSL::decorateUniform): (sh::OutputHLSL::decorateField): (sh::OutputHLSL::registerString): (sh::OutputHLSL::samplerRegister): (sh::OutputHLSL::uniformRegister): (sh::OutputHLSL::declareUniform): (sh::OutputHLSL::glVariableType): (sh::OutputHLSL::glVariablePrecision): * src/compiler/OutputHLSL.h: * src/compiler/ParseHelper.cpp: (TParseContext::parseVectorFields): (TParseContext::parseMatrixFields): (TParseContext::error): (TParseContext::warning): (TParseContext::assignError): (TParseContext::unaryOpError): (TParseContext::binaryOpError): (TParseContext::precisionErrorCheck): (TParseContext::lValueErrorCheck): (TParseContext::globalErrorCheck): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::voidErrorCheck): (TParseContext::boolErrorCheck): (TParseContext::samplerErrorCheck): (TParseContext::structQualifierErrorCheck): (TParseContext::parameterSamplerErrorCheck): (TParseContext::containsSampler): (TParseContext::arraySizeErrorCheck): (TParseContext::arrayQualifierErrorCheck): (TParseContext::arrayTypeErrorCheck): (TParseContext::arrayErrorCheck): (TParseContext::nonInitConstErrorCheck): (TParseContext::nonInitErrorCheck): (TParseContext::paramErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::isExtensionEnabled): Replaced auto with std::map::const_iterator to fix Qt and EFL compiling errors. (TParseContext::findFunction): (TParseContext::executeInitializer): (TParseContext::addConstructor): (TParseContext::constructBuiltIn): (TParseContext::constructStruct): (TParseContext::addConstVectorNode): (TParseContext::addConstMatrixNode): (TParseContext::addConstArrayNode): (TParseContext::addConstStruct): (TParseContext::enterStructDeclaration): (TParseContext::structNestingErrorCheck): (TParseContext::addIndexExpression): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): (TParseContext::pragma): * src/compiler/PoolAlloc.cpp: (TPoolAllocator::allocate): * src/compiler/ShHandle.h: (TShHandleBase::getAsTranslatorHLSL): * src/compiler/ShaderLang.cpp: (ShInitBuiltInResources): (ShGetInfoPointer): * src/compiler/SymbolTable.cpp: (TType::TType): (TType::buildMangledName): (TType::getObjectSize): (TStructure::containsArrays): (TStructure::buildMangledName): (TStructure::calculateObjectSize): (TStructure::calculateDeepestNesting): (TSymbolTableLevel::relateToExtension): * src/compiler/SymbolTable.h: (TSymbol::relateToExtension): (TSymbol::getExtension): (TVariable::TVariable): (TVariable::setQualifier): (TVariable::shareConstPointer): (TSymbolTableLevel::insert): (TSymbolTable::insertConstInt): (TSymbolTable::insertBuiltIn): * src/compiler/TranslatorHLSL.cpp: (TranslatorHLSL::TranslatorHLSL): (TranslatorHLSL::translate): * src/compiler/TranslatorHLSL.h: (TranslatorHLSL::getAsTranslatorHLSL): (TranslatorHLSL::getUniforms): * src/compiler/Types.h: Removed enum bit fields to fix gcc compiler errors. (TField::TField): (TField::type): (TField::name): (NewPoolTFieldList): (TStructure::TStructure): (TStructure::name): (TStructure::fields): (TStructure::mangledName): (TStructure::objectSize): (TStructure::deepestNesting): (TType::TType): (TType::elementRegisterCount): (TType::totalRegisterCount): (TType::clearArrayness): (TType::getStruct): (TType::setStruct): (TType::getMangledName): (TType::getDeepestStructNesting): (TType::isStructureContainingArrays): (TPublicType::setBasic): * src/compiler/Uniform.cpp: Added. (sh::Uniform::Uniform): * src/compiler/Uniform.h: Added. * src/compiler/VariableInfo.cpp: (getUserDefinedVariableInfo): * src/compiler/glslang.l: * src/compiler/glslang.y: Moved YYLTYPE definition into %union to work with Bison 2.3. * src/compiler/glslang_lex.cpp: (yy_get_previous_state): (yy_try_NUL_trans): (yyget_lloc): (yyset_lloc): (string_input): (check_type): (reserved_word): (glslang_scan): * src/compiler/glslang_tab.cpp: (yyerror): * src/compiler/glslang_tab.h: * src/compiler/intermOut.cpp: (TOutputTraverser::visitUnary): (TOutputTraverser::visitAggregate): (TOutputTraverser::visitConstantUnion): * src/compiler/intermediate.h: (TIntermNode::TIntermNode): (TIntermNode::~TIntermNode): (TIntermNode::getLine): (TIntermNode::setLine): (TIntermNode::getAsLoopNode): (TIntermTyped::totalRegisterCount): (TIntermTyped::elementRegisterCount): (TIntermTyped::getArraySize): (TIntermConstantUnion::getIConst): (TIntermConstantUnion::getFConst): (TIntermConstantUnion::getBConst): (TIntermAggregate::TIntermAggregate): (TIntermTraverser::TIntermTraverser): (TIntermTraverser::getMaxDepth): (TIntermTraverser::incrementDepth): * src/compiler/localintermediate.h: * src/compiler/parseConst.cpp: (TConstTraverser::visitSymbol): (TConstTraverser::visitBinary): (TConstTraverser::visitUnary): (TConstTraverser::visitAggregate): (TConstTraverser::visitSelection): (TConstTraverser::visitConstantUnion): (TConstTraverser::visitLoop): (TConstTraverser::visitBranch): (TIntermediate::parseConstTree): * src/compiler/preprocessor/64bit-tokenizer-safety.patch: Added. * src/compiler/preprocessor/Tokenizer.cpp: (yy_get_previous_state): (yy_try_NUL_trans): * src/compiler/preprocessor/Tokenizer.l: * src/compiler/preprocessor/preprocessor.vcxproj: Added. * src/compiler/preprocessor/preprocessor.vcxproj.filters: Added. * src/compiler/timing/RestrictVertexShaderTiming.cpp: (RestrictVertexShaderTiming::visitSymbol): * src/compiler/translator_common.vcxproj: Added. * src/compiler/translator_common.vcxproj.filters: Added. * src/compiler/translator_hlsl.vcxproj: Added. * src/compiler/translator_hlsl.vcxproj.filters: Added. * src/libEGL/Config.cpp: Added. (egl::Config::Config): (egl::Config::getHandle): (egl::SortConfig::SortConfig): (egl::SortConfig::scanForWantedComponents): (egl::SortConfig::wantedComponentsSize): (egl::SortConfig::operator()): (egl::ConfigSet::ConfigSet): (egl::ConfigSet::add): (egl::ConfigSet::size): (egl::ConfigSet::getConfigs): (egl::ConfigSet::get): * src/libEGL/Config.h: Added. * src/libEGL/Display.cpp: Added. (egl::Display::getDisplay): (egl::Display::Display): (egl::Display::~Display): (egl::Display::initialize): (egl::Display::terminate): (egl::Display::getConfigs): (egl::Display::getConfigAttrib): (egl::Display::createWindowSurface): (egl::Display::createOffscreenSurface): (egl::Display::createContext): (egl::Display::restoreLostDevice): (egl::Display::destroySurface): (egl::Display::destroyContext): (egl::Display::notifyDeviceLost): (egl::Display::recreateSwapChains): (egl::Display::isInitialized): (egl::Display::isValidConfig): (egl::Display::isValidContext): (egl::Display::isValidSurface): (egl::Display::hasExistingWindowSurface): (egl::Display::initExtensionString): (egl::Display::getExtensionString): (egl::Display::initVendorString): (egl::Display::getVendorString): * src/libEGL/Display.h: Added. (egl::Display::getRenderer): * src/libEGL/Surface.cpp: Added. (egl::Surface::Surface): (egl::Surface::~Surface): (egl::Surface::initialize): (egl::Surface::release): (egl::Surface::resetSwapChain): (egl::Surface::resizeSwapChain): (egl::Surface::swapRect): (egl::Surface::getWindowHandle): (egl::SurfaceWindowProc): (egl::Surface::subclassWindow): (egl::Surface::unsubclassWindow): (egl::Surface::checkForOutOfDateSwapChain): (egl::Surface::swap): (egl::Surface::postSubBuffer): (egl::Surface::getWidth): (egl::Surface::getHeight): (egl::Surface::isPostSubBufferSupported): (egl::Surface::getSwapChain): (egl::Surface::setSwapInterval): (egl::Surface::getTextureFormat): (egl::Surface::getTextureTarget): (egl::Surface::setBoundTexture): (egl::Surface::getBoundTexture): (egl::Surface::getFormat): * src/libEGL/Surface.h: Added. * src/libEGL/libEGL.cpp: Added. (validateDisplay): (validateConfig): (validateContext): (validateSurface): * src/libEGL/libEGL.def: Added. * src/libEGL/libEGL.rc: Added. * src/libEGL/libEGL.vcxproj: Added. * src/libEGL/libEGL.vcxproj.filters: Added. * src/libEGL/main.cpp: Added. (DllMain): (egl::setCurrentError): (egl::getCurrentError): (egl::setCurrentAPI): (egl::getCurrentAPI): (egl::setCurrentDisplay): (egl::getCurrentDisplay): (egl::setCurrentDrawSurface): (egl::getCurrentDrawSurface): (egl::setCurrentReadSurface): (egl::getCurrentReadSurface): (egl::error): * src/libEGL/main.h: Added. (egl::error): (egl::success): * src/libEGL/resource.h: Added. * src/libGLESv2/BinaryStream.h: Added. (gl::BinaryInputStream::BinaryInputStream): (gl::BinaryInputStream::read): (gl::BinaryInputStream::skip): (gl::BinaryInputStream::offset): (gl::BinaryInputStream::error): (gl::BinaryInputStream::endOfStream): (gl::BinaryOutputStream::BinaryOutputStream): (gl::BinaryOutputStream::write): (gl::BinaryOutputStream::length): (gl::BinaryOutputStream::data): * src/libGLESv2/Buffer.cpp: Added. (gl::Buffer::Buffer): (gl::Buffer::~Buffer): (gl::Buffer::bufferData): (gl::Buffer::bufferSubData): (gl::Buffer::getStorage): (gl::Buffer::size): (gl::Buffer::usage): (gl::Buffer::getStaticVertexBuffer): (gl::Buffer::getStaticIndexBuffer): (gl::Buffer::invalidateStaticData): (gl::Buffer::promoteStaticUsage): * src/libGLESv2/Buffer.h: Added. * src/libGLESv2/Context.cpp: Added. (gl::makeStaticString): (gl::Context::Context): (gl::Context::~Context): (gl::Context::makeCurrent): (gl::Context::markContextLost): (gl::Context::isContextLost): (gl::Context::setClearColor): (gl::Context::setClearDepth): (gl::Context::setClearStencil): (gl::Context::setCullFace): (gl::Context::isCullFaceEnabled): (gl::Context::setCullMode): (gl::Context::setFrontFace): (gl::Context::setDepthTest): (gl::Context::isDepthTestEnabled): (gl::Context::setDepthFunc): (gl::Context::setDepthRange): (gl::Context::setBlend): (gl::Context::isBlendEnabled): (gl::Context::setBlendFactors): (gl::Context::setBlendColor): (gl::Context::setBlendEquation): (gl::Context::setStencilTest): (gl::Context::isStencilTestEnabled): (gl::Context::setStencilParams): (gl::Context::setStencilBackParams): (gl::Context::setStencilWritemask): (gl::Context::setStencilBackWritemask): (gl::Context::setStencilOperations): (gl::Context::setStencilBackOperations): (gl::Context::setPolygonOffsetFill): (gl::Context::isPolygonOffsetFillEnabled): (gl::Context::setPolygonOffsetParams): (gl::Context::setSampleAlphaToCoverage): (gl::Context::isSampleAlphaToCoverageEnabled): (gl::Context::setSampleCoverage): (gl::Context::isSampleCoverageEnabled): (gl::Context::setSampleCoverageParams): (gl::Context::setScissorTest): (gl::Context::isScissorTestEnabled): (gl::Context::setDither): (gl::Context::isDitherEnabled): (gl::Context::setLineWidth): (gl::Context::setGenerateMipmapHint): (gl::Context::setFragmentShaderDerivativeHint): (gl::Context::setViewportParams): (gl::Context::setScissorParams): (gl::Context::setColorMask): (gl::Context::setDepthMask): (gl::Context::setActiveSampler): (gl::Context::getReadFramebufferHandle): (gl::Context::getDrawFramebufferHandle): (gl::Context::getRenderbufferHandle): (gl::Context::getArrayBufferHandle): (gl::Context::getActiveQuery): (gl::Context::setEnableVertexAttribArray): (gl::Context::getVertexAttribState): (gl::Context::setVertexAttribState): (gl::Context::getVertexAttribPointer): (gl::Context::setPackAlignment): (gl::Context::getPackAlignment): (gl::Context::setUnpackAlignment): (gl::Context::getUnpackAlignment): (gl::Context::setPackReverseRowOrder): (gl::Context::getPackReverseRowOrder): (gl::Context::createBuffer): (gl::Context::createProgram): (gl::Context::createShader): (gl::Context::createTexture): (gl::Context::createRenderbuffer): (gl::Context::createFramebuffer): (gl::Context::createFence): (gl::Context::createQuery): (gl::Context::deleteBuffer): (gl::Context::deleteShader): (gl::Context::deleteProgram): (gl::Context::deleteTexture): (gl::Context::deleteRenderbuffer): (gl::Context::deleteFramebuffer): (gl::Context::deleteFence): (gl::Context::deleteQuery): (gl::Context::getBuffer): (gl::Context::getShader): (gl::Context::getProgram): (gl::Context::getTexture): (gl::Context::getRenderbuffer): (gl::Context::getReadFramebuffer): (gl::Context::getDrawFramebuffer): (gl::Context::bindArrayBuffer): (gl::Context::bindElementArrayBuffer): (gl::Context::bindTexture2D): (gl::Context::bindTextureCubeMap): (gl::Context::bindReadFramebuffer): (gl::Context::bindDrawFramebuffer): (gl::Context::bindRenderbuffer): (gl::Context::useProgram): (gl::Context::linkProgram): (gl::Context::setProgramBinary): (gl::Context::beginQuery): (gl::Context::endQuery): (gl::Context::setFramebufferZero): (gl::Context::setRenderbufferStorage): (gl::Context::getFramebuffer): (gl::Context::getFence): (gl::Context::getQuery): (gl::Context::getArrayBuffer): (gl::Context::getElementArrayBuffer): (gl::Context::getCurrentProgramBinary): (gl::Context::getTexture2D): (gl::Context::getTextureCubeMap): (gl::Context::getSamplerTexture): (gl::Context::getBooleanv): (gl::Context::getFloatv): (gl::Context::getIntegerv): (gl::Context::getQueryParameterInfo): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::applyShaders): (gl::Context::applyTextures): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::sync): (gl::Context::recordInvalidEnum): (gl::Context::recordInvalidValue): (gl::Context::recordInvalidOperation): (gl::Context::recordOutOfMemory): (gl::Context::recordInvalidFramebufferOperation): (gl::Context::getError): (gl::Context::getResetStatus): (gl::Context::isResetNotificationEnabled): (gl::Context::getMajorShaderModel): (gl::Context::getMaximumPointSize): (gl::Context::getMaximumCombinedTextureImageUnits): (gl::Context::getMaxSupportedSamples): (gl::Context::getMaximumRenderTargets): (gl::Context::supportsEventQueries): (gl::Context::supportsOcclusionQueries): (gl::Context::supportsBGRATextures): (gl::Context::supportsDXT1Textures): (gl::Context::supportsDXT3Textures): (gl::Context::supportsDXT5Textures): (gl::Context::supportsFloat32Textures): (gl::Context::supportsFloat32LinearFilter): (gl::Context::supportsFloat32RenderableTextures): (gl::Context::supportsFloat16Textures): (gl::Context::supportsFloat16LinearFilter): (gl::Context::supportsFloat16RenderableTextures): (gl::Context::getMaximumRenderbufferDimension): (gl::Context::getMaximumTextureDimension): (gl::Context::getMaximumCubeTextureDimension): (gl::Context::getMaximumTextureLevel): (gl::Context::supportsLuminanceTextures): (gl::Context::supportsLuminanceAlphaTextures): (gl::Context::supportsDepthTextures): (gl::Context::supports32bitIndices): (gl::Context::supportsNonPower2Texture): (gl::Context::supportsInstancing): (gl::Context::supportsTextureFilterAnisotropy): (gl::Context::getTextureMaxAnisotropy): (gl::Context::getCurrentReadFormatType): (gl::Context::detachBuffer): (gl::Context::detachTexture): (gl::Context::detachFramebuffer): (gl::Context::detachRenderbuffer): (gl::Context::getIncompleteTexture): (gl::Context::skipDraw): (gl::Context::setVertexAttrib): (gl::Context::setVertexAttribDivisor): (gl::Context::initExtensionString): (gl::Context::getExtensionString): (gl::Context::initRendererString): (gl::Context::getRendererString): (gl::Context::blitFramebuffer): * src/libGLESv2/Context.h: Added. (gl::VertexAttribute::VertexAttribute): (gl::VertexAttribute::typeSize): (gl::VertexAttribute::stride): * src/libGLESv2/Fence.cpp: Added. (gl::Fence::Fence): (gl::Fence::~Fence): (gl::Fence::isFence): (gl::Fence::setFence): (gl::Fence::testFence): (gl::Fence::finishFence): (gl::Fence::getFenceiv): * src/libGLESv2/Fence.h: Added. * src/libGLESv2/Float16ToFloat32.cpp: Added. (gl::float16ToFloat32): * src/libGLESv2/Float16ToFloat32.py: Added. (convertMantissa): (convertExponent): (convertOffset): * src/libGLESv2/Framebuffer.cpp: Added. (gl::Framebuffer::Framebuffer): (gl::Framebuffer::~Framebuffer): (gl::Framebuffer::lookupRenderbuffer): (gl::Framebuffer::setColorbuffer): (gl::Framebuffer::setDepthbuffer): (gl::Framebuffer::setStencilbuffer): (gl::Framebuffer::detachTexture): (gl::Framebuffer::detachRenderbuffer): (gl::Framebuffer::getRenderTargetSerial): (gl::Framebuffer::getDepthbufferSerial): (gl::Framebuffer::getStencilbufferSerial): (gl::Framebuffer::getColorbuffer): (gl::Framebuffer::getDepthbuffer): (gl::Framebuffer::getStencilbuffer): (gl::Framebuffer::getDepthOrStencilbuffer): (gl::Framebuffer::getReadColorbuffer): (gl::Framebuffer::getReadColorbufferType): (gl::Framebuffer::getFirstColorbuffer): (gl::Framebuffer::getColorbufferType): (gl::Framebuffer::getDepthbufferType): (gl::Framebuffer::getStencilbufferType): (gl::Framebuffer::getColorbufferHandle): (gl::Framebuffer::getDepthbufferHandle): (gl::Framebuffer::getStencilbufferHandle): (gl::Framebuffer::getDrawBufferState): (gl::Framebuffer::setDrawBufferState): (gl::Framebuffer::isEnabledColorAttachment): (gl::Framebuffer::hasEnabledColorAttachment): (gl::Framebuffer::hasStencil): (gl::Framebuffer::usingExtendedDrawBuffers): (gl::Framebuffer::completeness): (gl::DefaultFramebuffer::DefaultFramebuffer): (gl::Framebuffer::getSamples): (gl::DefaultFramebuffer::completeness): * src/libGLESv2/Framebuffer.h: Added. * src/libGLESv2/HandleAllocator.cpp: Added. (gl::HandleAllocator::HandleAllocator): (gl::HandleAllocator::~HandleAllocator): (gl::HandleAllocator::setBaseHandle): (gl::HandleAllocator::allocate): (gl::HandleAllocator::release): * src/libGLESv2/HandleAllocator.h: Added. * src/libGLESv2/Program.cpp: Added. (gl::AttributeBindings::AttributeBindings): (gl::AttributeBindings::~AttributeBindings): (gl::InfoLog::InfoLog): (gl::InfoLog::~InfoLog): (gl::InfoLog::getLength): (gl::InfoLog::getLog): (gl::InfoLog::appendSanitized): (gl::InfoLog::append): (gl::InfoLog::reset): (gl::Program::Program): (gl::Program::~Program): (gl::Program::attachShader): (gl::Program::detachShader): (gl::Program::getAttachedShadersCount): (gl::AttributeBindings::bindAttributeLocation): (gl::Program::bindAttributeLocation): (gl::Program::link): (gl::AttributeBindings::getAttributeBinding): (gl::Program::unlink): (gl::Program::isLinked): (gl::Program::getProgramBinary): (gl::Program::setProgramBinary): (gl::Program::release): (gl::Program::addRef): (gl::Program::getRefCount): (gl::Program::getProgramBinaryLength): (gl::Program::getInfoLogLength): (gl::Program::getInfoLog): (gl::Program::getAttachedShaders): (gl::Program::getActiveAttribute): (gl::Program::getActiveAttributeCount): (gl::Program::getActiveAttributeMaxLength): (gl::Program::getActiveUniform): (gl::Program::getActiveUniformCount): (gl::Program::getActiveUniformMaxLength): (gl::Program::flagForDeletion): (gl::Program::isFlaggedForDeletion): (gl::Program::validate): (gl::Program::isValidated): * src/libGLESv2/Program.h: Added. * src/libGLESv2/ProgramBinary.cpp: Added. (gl::str): (gl::UniformLocation::UniformLocation): (gl::ProgramBinary::ProgramBinary): (gl::ProgramBinary::~ProgramBinary): (gl::ProgramBinary::getSerial): (gl::ProgramBinary::issueSerial): (gl::ProgramBinary::getPixelExecutable): (gl::ProgramBinary::getVertexExecutable): (gl::ProgramBinary::getGeometryExecutable): (gl::ProgramBinary::getAttributeLocation): (gl::ProgramBinary::getSemanticIndex): (gl::ProgramBinary::getUsedSamplerRange): (gl::ProgramBinary::usesPointSize): (gl::ProgramBinary::usesPointSpriteEmulation): (gl::ProgramBinary::usesGeometryShader): (gl::ProgramBinary::getSamplerMapping): (gl::ProgramBinary::getSamplerTextureType): (gl::ProgramBinary::getUniformLocation): (gl::ProgramBinary::setUniform1fv): (gl::ProgramBinary::setUniform2fv): (gl::ProgramBinary::setUniform3fv): (gl::ProgramBinary::setUniform4fv): (gl::transposeMatrix): (gl::ProgramBinary::setUniformMatrix2fv): (gl::ProgramBinary::setUniformMatrix3fv): (gl::ProgramBinary::setUniformMatrix4fv): (gl::ProgramBinary::setUniform1iv): (gl::ProgramBinary::setUniform2iv): (gl::ProgramBinary::setUniform3iv): (gl::ProgramBinary::setUniform4iv): (gl::ProgramBinary::getUniformfv): (gl::ProgramBinary::getUniformiv): (gl::ProgramBinary::dirtyAllUniforms): (gl::ProgramBinary::applyUniforms): (gl::ProgramBinary::packVaryings): (gl::ProgramBinary::linkVaryings): (gl::ProgramBinary::load): (gl::ProgramBinary::save): (gl::ProgramBinary::getLength): (gl::ProgramBinary::link): (gl::ProgramBinary::linkAttributes): (gl::ProgramBinary::linkUniforms): (gl::ProgramBinary::defineUniform): (gl::ProgramBinary::generateGeometryShaderHLSL): (gl::ProgramBinary::generatePointSpriteHLSL): (gl::ProgramBinary::decorateAttribute): (gl::ProgramBinary::isValidated): (gl::ProgramBinary::getActiveAttribute): (gl::ProgramBinary::getActiveAttributeCount): (gl::ProgramBinary::getActiveAttributeMaxLength): (gl::ProgramBinary::getActiveUniform): (gl::ProgramBinary::getActiveUniformCount): (gl::ProgramBinary::getActiveUniformMaxLength): (gl::ProgramBinary::validate): (gl::ProgramBinary::validateSamplers): (gl::ProgramBinary::Sampler::Sampler): (gl::AttributeSorter::AttributeSorter): (gl::AttributeSorter::operator()): (gl::ProgramBinary::sortAttributesByLayout): * src/libGLESv2/ProgramBinary.h: Added. (gl::UniformLocation::UniformLocation): * src/libGLESv2/Query.cpp: Added. (gl::Query::Query): (gl::Query::~Query): (gl::Query::begin): (gl::Query::end): (gl::Query::getResult): (gl::Query::isResultAvailable): (gl::Query::getType): * src/libGLESv2/Query.h: Added. * src/libGLESv2/Renderbuffer.cpp: Added. (gl::RenderbufferInterface::RenderbufferInterface): (gl::RenderbufferInterface::addProxyRef): (gl::RenderbufferInterface::releaseProxy): (gl::RenderbufferInterface::getRedSize): (gl::RenderbufferInterface::getGreenSize): (gl::RenderbufferInterface::getBlueSize): (gl::RenderbufferInterface::getAlphaSize): (gl::RenderbufferInterface::getDepthSize): (gl::RenderbufferInterface::getStencilSize): (gl::RenderbufferTexture2D::RenderbufferTexture2D): (gl::RenderbufferTexture2D::~RenderbufferTexture2D): (gl::RenderbufferTexture2D::addProxyRef): (gl::RenderbufferTexture2D::releaseProxy): (gl::RenderbufferTexture2D::getRenderTarget): (gl::RenderbufferTexture2D::getDepthStencil): (gl::RenderbufferTexture2D::getWidth): (gl::RenderbufferTexture2D::getHeight): (gl::RenderbufferTexture2D::getInternalFormat): (gl::RenderbufferTexture2D::getActualFormat): (gl::RenderbufferTexture2D::getSamples): (gl::RenderbufferTexture2D::getSerial): (gl::RenderbufferTextureCubeMap::RenderbufferTextureCubeMap): (gl::RenderbufferTextureCubeMap::~RenderbufferTextureCubeMap): (gl::RenderbufferTextureCubeMap::addProxyRef): (gl::RenderbufferTextureCubeMap::releaseProxy): (gl::RenderbufferTextureCubeMap::getRenderTarget): (gl::RenderbufferTextureCubeMap::getDepthStencil): (gl::RenderbufferTextureCubeMap::getWidth): (gl::RenderbufferTextureCubeMap::getHeight): (gl::RenderbufferTextureCubeMap::getInternalFormat): (gl::RenderbufferTextureCubeMap::getActualFormat): (gl::RenderbufferTextureCubeMap::getSamples): (gl::RenderbufferTextureCubeMap::getSerial): (gl::Renderbuffer::Renderbuffer): (gl::Renderbuffer::~Renderbuffer): (gl::Renderbuffer::addRef): (gl::Renderbuffer::release): (gl::Renderbuffer::getRenderTarget): (gl::Renderbuffer::getDepthStencil): (gl::Renderbuffer::getWidth): (gl::Renderbuffer::getHeight): (gl::Renderbuffer::getInternalFormat): (gl::Renderbuffer::getActualFormat): (gl::Renderbuffer::getRedSize): (gl::Renderbuffer::getGreenSize): (gl::Renderbuffer::getBlueSize): (gl::Renderbuffer::getAlphaSize): (gl::Renderbuffer::getDepthSize): (gl::Renderbuffer::getStencilSize): (gl::Renderbuffer::getSamples): (gl::Renderbuffer::getSerial): (gl::Renderbuffer::setStorage): (gl::RenderbufferStorage::RenderbufferStorage): (gl::RenderbufferStorage::~RenderbufferStorage): (gl::RenderbufferStorage::getRenderTarget): (gl::RenderbufferStorage::getDepthStencil): (gl::RenderbufferStorage::getWidth): (gl::RenderbufferStorage::getHeight): (gl::RenderbufferStorage::getInternalFormat): (gl::RenderbufferStorage::getActualFormat): (gl::RenderbufferStorage::getSamples): (gl::RenderbufferStorage::getSerial): (gl::RenderbufferStorage::issueSerial): (gl::RenderbufferStorage::issueCubeSerials): (gl::Colorbuffer::Colorbuffer): (gl::Colorbuffer::~Colorbuffer): (gl::Colorbuffer::getRenderTarget): (gl::DepthStencilbuffer::DepthStencilbuffer): (gl::DepthStencilbuffer::~DepthStencilbuffer): (gl::DepthStencilbuffer::getDepthStencil): (gl::Depthbuffer::Depthbuffer): (gl::Depthbuffer::~Depthbuffer): (gl::Stencilbuffer::Stencilbuffer): (gl::Stencilbuffer::~Stencilbuffer): * src/libGLESv2/Renderbuffer.h: Added. (gl::RenderbufferInterface::~RenderbufferInterface): * src/libGLESv2/ResourceManager.cpp: Added. (gl::ResourceManager::ResourceManager): (gl::ResourceManager::~ResourceManager): (gl::ResourceManager::addRef): (gl::ResourceManager::release): (gl::ResourceManager::createBuffer): (gl::ResourceManager::createShader): (gl::ResourceManager::createProgram): (gl::ResourceManager::createTexture): (gl::ResourceManager::createRenderbuffer): (gl::ResourceManager::deleteBuffer): (gl::ResourceManager::deleteShader): (gl::ResourceManager::deleteProgram): (gl::ResourceManager::deleteTexture): (gl::ResourceManager::deleteRenderbuffer): (gl::ResourceManager::getBuffer): (gl::ResourceManager::getShader): (gl::ResourceManager::getTexture): (gl::ResourceManager::getProgram): (gl::ResourceManager::getRenderbuffer): (gl::ResourceManager::setRenderbuffer): (gl::ResourceManager::checkBufferAllocation): (gl::ResourceManager::checkTextureAllocation): (gl::ResourceManager::checkRenderbufferAllocation): * src/libGLESv2/ResourceManager.h: Added. * src/libGLESv2/Shader.cpp: Added. (gl::Shader::Shader): (gl::Shader::~Shader): (gl::Shader::getHandle): (gl::Shader::setSource): (gl::Shader::getInfoLogLength): (gl::Shader::getInfoLog): (gl::Shader::getSourceLength): (gl::Shader::getTranslatedSourceLength): (gl::Shader::getSourceImpl): (gl::Shader::getSource): (gl::Shader::getTranslatedSource): (gl::Shader::getUniforms): (gl::Shader::isCompiled): (gl::Shader::getHLSL): (gl::Shader::addRef): (gl::Shader::release): (gl::Shader::getRefCount): (gl::Shader::isFlaggedForDeletion): (gl::Shader::flagForDeletion): (gl::Shader::initializeCompiler): (gl::Shader::releaseCompiler): (gl::Shader::parseVaryings): (gl::Shader::resetVaryingsRegisterAssignment): (gl::Shader::uncompile): (gl::Shader::compileToHLSL): (gl::Shader::parseType): (gl::Shader::compareVarying): (gl::VertexShader::VertexShader): (gl::VertexShader::~VertexShader): (gl::VertexShader::getType): (gl::VertexShader::uncompile): (gl::VertexShader::compile): (gl::VertexShader::getSemanticIndex): (gl::VertexShader::parseAttributes): (gl::FragmentShader::FragmentShader): (gl::FragmentShader::~FragmentShader): (gl::FragmentShader::getType): (gl::FragmentShader::compile): * src/libGLESv2/Shader.h: Added. (gl::Varying::Varying): (gl::Attribute::Attribute): * src/libGLESv2/Texture.cpp: Added. (gl::Texture::Texture): (gl::Texture::~Texture): (gl::Texture::setMinFilter): (gl::Texture::setMagFilter): (gl::Texture::setWrapS): (gl::Texture::setWrapT): (gl::Texture::setMaxAnisotropy): (gl::Texture::setUsage): (gl::Texture::getMinFilter): (gl::Texture::getMagFilter): (gl::Texture::getWrapS): (gl::Texture::getWrapT): (gl::Texture::getMaxAnisotropy): (gl::Texture::getLodOffset): (gl::Texture::getSamplerState): (gl::Texture::getUsage): (gl::Texture::isMipmapFiltered): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::Texture::getNativeTexture): (gl::Texture::hasDirtyImages): (gl::Texture::resetDirty): (gl::Texture::getTextureSerial): (gl::Texture::getRenderTargetSerial): (gl::Texture::isImmutable): (gl::Texture::creationLevels): (gl::Texture2D::Texture2D): (gl::Texture2D::~Texture2D): (gl::Texture2D::addProxyRef): (gl::Texture2D::releaseProxy): (gl::Texture2D::getTarget): (gl::Texture2D::getWidth): (gl::Texture2D::getHeight): (gl::Texture2D::getInternalFormat): (gl::Texture2D::getActualFormat): (gl::Texture2D::redefineImage): (gl::Texture2D::setImage): (gl::Texture2D::bindTexImage): (gl::Texture2D::releaseTexImage): (gl::Texture2D::setCompressedImage): (gl::Texture2D::commitRect): (gl::Texture2D::subImage): (gl::Texture2D::subImageCompressed): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::storage): (gl::Texture2D::isSamplerComplete): (gl::Texture2D::isMipmapComplete): (gl::Texture2D::isCompressed): (gl::Texture2D::isDepth): (gl::Texture2D::createTexture): (gl::Texture2D::updateTexture): (gl::Texture2D::convertToRenderTarget): (gl::Texture2D::generateMipmaps): (gl::Texture2D::getRenderbuffer): (gl::Texture2D::getRenderTarget): (gl::Texture2D::getDepthStencil): (gl::Texture2D::levelCount): (gl::Texture2D::getStorage): (gl::TextureCubeMap::TextureCubeMap): (gl::TextureCubeMap::~TextureCubeMap): (gl::TextureCubeMap::addProxyRef): (gl::TextureCubeMap::releaseProxy): (gl::TextureCubeMap::getTarget): (gl::TextureCubeMap::getWidth): (gl::TextureCubeMap::getHeight): (gl::TextureCubeMap::getInternalFormat): (gl::TextureCubeMap::getActualFormat): (gl::TextureCubeMap::setImagePosX): (gl::TextureCubeMap::setImageNegX): (gl::TextureCubeMap::setImagePosY): (gl::TextureCubeMap::setImageNegY): (gl::TextureCubeMap::setImagePosZ): (gl::TextureCubeMap::setImageNegZ): (gl::TextureCubeMap::setCompressedImage): (gl::TextureCubeMap::commitRect): (gl::TextureCubeMap::subImage): (gl::TextureCubeMap::subImageCompressed): (gl::TextureCubeMap::isSamplerComplete): (gl::TextureCubeMap::isCubeComplete): (gl::TextureCubeMap::isMipmapCubeComplete): (gl::TextureCubeMap::isCompressed): (gl::TextureCubeMap::createTexture): (gl::TextureCubeMap::updateTexture): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::setImage): (gl::TextureCubeMap::faceIndex): (gl::TextureCubeMap::redefineImage): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::storage): (gl::TextureCubeMap::generateMipmaps): (gl::TextureCubeMap::getRenderbuffer): (gl::TextureCubeMap::getRenderTarget): (gl::TextureCubeMap::levelCount): (gl::TextureCubeMap::getStorage): * src/libGLESv2/Texture.h: Added. * src/libGLESv2/Uniform.cpp: Added. (gl::Uniform::Uniform): (gl::Uniform::~Uniform): (gl::Uniform::isArray): (gl::Uniform::elementCount): * src/libGLESv2/Uniform.h: Added. * src/libGLESv2/angletypes.h: Added. * src/libGLESv2/constants.h: Added. * src/libGLESv2/libGLESv2.cpp: Added. (validImageSize): (checkTextureFormatType): (validateSubImageParams2D): (validateSubImageParamsCube): (validReadFormatType): * src/libGLESv2/libGLESv2.def: Added. * src/libGLESv2/libGLESv2.rc: Added. * src/libGLESv2/libGLESv2.vcxproj: Added. * src/libGLESv2/libGLESv2.vcxproj.filters: Added. * src/libGLESv2/main.cpp: Added. (DllMain): (gl::makeCurrent): (gl::getContext): (gl::getNonLostContext): (gl::getDisplay): (gl::error): * src/libGLESv2/main.h: Added. (gl::error): * src/libGLESv2/mathutil.h: Added. (gl::Vector4::Vector4): (gl::isPow2): (gl::log2): (gl::ceilPow2): (gl::clamp): (gl::clamp01): (gl::unorm): (gl::supportsSSE2): (gl::float32ToFloat16): (rx::Range::Range): * src/libGLESv2/precompiled.cpp: Added. * src/libGLESv2/precompiled.h: Added. * src/libGLESv2/renderer: Added. * src/libGLESv2/renderer/Blit.cpp: Added. (rx::Blit::Blit): (rx::Blit::~Blit): (rx::Blit::initGeometry): (rx::Blit::setShader): (rx::Blit::setVertexShader): (rx::Blit::setPixelShader): (rx::Blit::getSurfaceRect): (rx::Blit::boxFilter): (rx::Blit::copy): (rx::Blit::formatConvert): (rx::Blit::setFormatConvertShaders): (rx::Blit::copySurfaceToTexture): (rx::Blit::setViewport): (rx::Blit::setCommonBlitState): (rx::Blit::render): (rx::Blit::saveState): (rx::Blit::restoreState): * src/libGLESv2/renderer/Blit.h: Added. * src/libGLESv2/renderer/BufferStorage.cpp: Added. (rx::BufferStorage::BufferStorage): (rx::BufferStorage::~BufferStorage): (rx::BufferStorage::getSerial): (rx::BufferStorage::updateSerial): (rx::BufferStorage::markBufferUsage): * src/libGLESv2/renderer/BufferStorage.h: Added. * src/libGLESv2/renderer/BufferStorage11.cpp: Added. (rx::BufferStorage11::BufferStorage11): (rx::BufferStorage11::~BufferStorage11): (rx::BufferStorage11::makeBufferStorage11): (rx::BufferStorage11::getData): (rx::BufferStorage11::setData): (rx::BufferStorage11::clear): (rx::BufferStorage11::getSize): (rx::BufferStorage11::supportsDirectBinding): (rx::BufferStorage11::markBufferUsage): (rx::BufferStorage11::getBuffer): * src/libGLESv2/renderer/BufferStorage11.h: Added. * src/libGLESv2/renderer/BufferStorage9.cpp: Added. (rx::BufferStorage9::BufferStorage9): (rx::BufferStorage9::~BufferStorage9): (rx::BufferStorage9::makeBufferStorage9): (rx::BufferStorage9::getData): (rx::BufferStorage9::setData): (rx::BufferStorage9::clear): (rx::BufferStorage9::getSize): (rx::BufferStorage9::supportsDirectBinding): * src/libGLESv2/renderer/BufferStorage9.h: Added. * src/libGLESv2/renderer/Fence11.cpp: Added. (rx::Fence11::Fence11): (rx::Fence11::~Fence11): (rx::Fence11::isFence): (rx::Fence11::setFence): (rx::Fence11::testFence): (rx::Fence11::finishFence): (rx::Fence11::getFenceiv): * src/libGLESv2/renderer/Fence11.h: Added. * src/libGLESv2/renderer/Fence9.cpp: Added. (rx::Fence9::Fence9): (rx::Fence9::~Fence9): (rx::Fence9::isFence): (rx::Fence9::setFence): (rx::Fence9::testFence): (rx::Fence9::finishFence): (rx::Fence9::getFenceiv): * src/libGLESv2/renderer/Fence9.h: Added. * src/libGLESv2/renderer/FenceImpl.h: Added. (rx::FenceImpl::FenceImpl): (rx::FenceImpl::~FenceImpl): (rx::FenceImpl::setStatus): (rx::FenceImpl::getStatus): (rx::FenceImpl::setCondition): (rx::FenceImpl::getCondition): * src/libGLESv2/renderer/Image.cpp: Added. (rx::Image::Image): (rx::Image::loadAlphaDataToBGRA): (rx::Image::loadAlphaDataToNative): (rx::Image::loadAlphaFloatDataToRGBA): (rx::Image::loadAlphaHalfFloatDataToRGBA): (rx::Image::loadLuminanceDataToNativeOrBGRA): (rx::Image::loadLuminanceFloatDataToRGBA): (rx::Image::loadLuminanceFloatDataToRGB): (rx::Image::loadLuminanceHalfFloatDataToRGBA): (rx::Image::loadLuminanceAlphaDataToNativeOrBGRA): (rx::Image::loadLuminanceAlphaFloatDataToRGBA): (rx::Image::loadLuminanceAlphaHalfFloatDataToRGBA): (rx::Image::loadRGBUByteDataToBGRX): (rx::Image::loadRGBUByteDataToRGBA): (rx::Image::loadRGB565DataToBGRA): (rx::Image::loadRGB565DataToRGBA): (rx::Image::loadRGBFloatDataToRGBA): (rx::Image::loadRGBFloatDataToNative): (rx::Image::loadRGBHalfFloatDataToRGBA): (rx::Image::loadRGBAUByteDataToBGRA): (rx::Image::loadRGBAUByteDataToNative): (rx::Image::loadRGBA4444DataToBGRA): (rx::Image::loadRGBA4444DataToRGBA): (rx::Image::loadRGBA5551DataToBGRA): (rx::Image::loadRGBA5551DataToRGBA): (rx::Image::loadRGBAFloatDataToRGBA): (rx::Image::loadRGBAHalfFloatDataToRGBA): (rx::Image::loadBGRADataToBGRA): * src/libGLESv2/renderer/Image.h: Added. (rx::Image::~Image): (rx::Image::getWidth): (rx::Image::getHeight): (rx::Image::getInternalFormat): (rx::Image::getActualFormat): (rx::Image::markDirty): (rx::Image::markClean): (rx::Image::setManagedSurface): * src/libGLESv2/renderer/Image11.cpp: Added. (rx::Image11::Image11): (rx::Image11::~Image11): (rx::Image11::makeImage11): (rx::Image11::generateMipmap): (rx::Image11::isDirty): (rx::Image11::updateSurface): (rx::Image11::redefine): (rx::Image11::isRenderableFormat): (rx::Image11::getDXGIFormat): (rx::Image11::loadData): (rx::Image11::loadCompressedData): (rx::Image11::copy): (rx::Image11::getStagingTexture): (rx::Image11::getStagingSubresource): (rx::Image11::createStagingTexture): (rx::Image11::map): (rx::Image11::unmap): * src/libGLESv2/renderer/Image11.h: Added. * src/libGLESv2/renderer/Image9.cpp: Added. (rx::Image9::Image9): (rx::Image9::~Image9): (rx::Image9::generateMip): (rx::Image9::makeImage9): (rx::Image9::generateMipmap): (rx::Image9::copyLockableSurfaces): (rx::Image9::redefine): (rx::Image9::createSurface): (rx::Image9::lock): (rx::Image9::unlock): (rx::Image9::isRenderableFormat): (rx::Image9::getD3DFormat): (rx::Image9::getSurface): (rx::Image9::setManagedSurface): (rx::Image9::updateSurface): (rx::Image9::loadData): (rx::Image9::loadCompressedData): (rx::Image9::copy): * src/libGLESv2/renderer/Image9.h: Added. (rx::Image9::isDirty): * src/libGLESv2/renderer/ImageSSE2.cpp: Added. (rx::Image::loadRGBAUByteDataToBGRASSE2): (rx::Image::loadAlphaDataToBGRASSE2): * src/libGLESv2/renderer/IndexBuffer.cpp: Added. (rx::IndexBuffer::IndexBuffer): (rx::IndexBuffer::~IndexBuffer): (rx::IndexBuffer::getSerial): (rx::IndexBuffer::updateSerial): (rx::IndexBufferInterface::IndexBufferInterface): (rx::IndexBufferInterface::~IndexBufferInterface): (rx::IndexBufferInterface::getIndexType): (rx::IndexBufferInterface::getBufferSize): (rx::IndexBufferInterface::getSerial): (rx::IndexBufferInterface::mapBuffer): (rx::IndexBufferInterface::unmapBuffer): (rx::IndexBufferInterface::getIndexBuffer): (rx::IndexBufferInterface::getWritePosition): (rx::IndexBufferInterface::setWritePosition): (rx::IndexBufferInterface::discard): (rx::IndexBufferInterface::setBufferSize): (rx::StreamingIndexBufferInterface::StreamingIndexBufferInterface): (rx::StreamingIndexBufferInterface::~StreamingIndexBufferInterface): (rx::StreamingIndexBufferInterface::reserveBufferSpace): (rx::StaticIndexBufferInterface::StaticIndexBufferInterface): (rx::StaticIndexBufferInterface::~StaticIndexBufferInterface): (rx::StaticIndexBufferInterface::reserveBufferSpace): (rx::StaticIndexBufferInterface::lookupRange): (rx::StaticIndexBufferInterface::addRange): * src/libGLESv2/renderer/IndexBuffer.h: Added. (rx::StaticIndexBufferInterface::IndexRange::operator<): * src/libGLESv2/renderer/IndexBuffer11.cpp: Added. (rx::IndexBuffer11::IndexBuffer11): (rx::IndexBuffer11::~IndexBuffer11): (rx::IndexBuffer11::initialize): (rx::IndexBuffer11::makeIndexBuffer11): (rx::IndexBuffer11::mapBuffer): (rx::IndexBuffer11::unmapBuffer): (rx::IndexBuffer11::getIndexType): (rx::IndexBuffer11::getBufferSize): (rx::IndexBuffer11::setSize): (rx::IndexBuffer11::discard): (rx::IndexBuffer11::getIndexFormat): (rx::IndexBuffer11::getBuffer): * src/libGLESv2/renderer/IndexBuffer11.h: Added. * src/libGLESv2/renderer/IndexBuffer9.cpp: Added. (rx::IndexBuffer9::IndexBuffer9): (rx::IndexBuffer9::~IndexBuffer9): (rx::IndexBuffer9::initialize): (rx::IndexBuffer9::makeIndexBuffer9): (rx::IndexBuffer9::mapBuffer): (rx::IndexBuffer9::unmapBuffer): (rx::IndexBuffer9::getIndexType): (rx::IndexBuffer9::getBufferSize): (rx::IndexBuffer9::setSize): (rx::IndexBuffer9::discard): (rx::IndexBuffer9::getIndexFormat): (rx::IndexBuffer9::getBuffer): * src/libGLESv2/renderer/IndexBuffer9.h: Added. * src/libGLESv2/renderer/IndexDataManager.cpp: Added. (rx::IndexDataManager::IndexDataManager): (rx::IndexDataManager::~IndexDataManager): (rx::indexTypeSize): (rx::convertIndices): (rx::computeRange): (rx::IndexDataManager::prepareIndexData): (rx::IndexDataManager::getCountingIndices): * src/libGLESv2/renderer/IndexDataManager.h: Added. * src/libGLESv2/renderer/InputLayoutCache.cpp: Added. (rx::InputLayoutCache::InputLayoutCache): (rx::InputLayoutCache::~InputLayoutCache): (rx::InputLayoutCache::initialize): (rx::InputLayoutCache::clear): (rx::InputLayoutCache::applyVertexBuffers): (rx::InputLayoutCache::hashInputLayout): (rx::InputLayoutCache::compareInputLayouts): * src/libGLESv2/renderer/InputLayoutCache.h: Added. * src/libGLESv2/renderer/Query11.cpp: Added. (rx::Query11::Query11): (rx::Query11::~Query11): (rx::Query11::begin): (rx::Query11::end): (rx::Query11::getResult): (rx::Query11::isResultAvailable): (rx::Query11::testQuery): * src/libGLESv2/renderer/Query11.h: Added. * src/libGLESv2/renderer/Query9.cpp: Added. (rx::Query9::Query9): (rx::Query9::~Query9): (rx::Query9::begin): (rx::Query9::end): (rx::Query9::getResult): (rx::Query9::isResultAvailable): (rx::Query9::testQuery): * src/libGLESv2/renderer/Query9.h: Added. * src/libGLESv2/renderer/QueryImpl.h: Added. (rx::QueryImpl::QueryImpl): (rx::QueryImpl::~QueryImpl): (rx::QueryImpl::getType): * src/libGLESv2/renderer/RenderStateCache.cpp: Added. (rx::RenderStateCache::RenderStateCache): (rx::RenderStateCache::~RenderStateCache): (rx::RenderStateCache::initialize): (rx::RenderStateCache::clear): (rx::RenderStateCache::hashBlendState): (rx::RenderStateCache::compareBlendStates): (rx::RenderStateCache::getBlendState): (rx::RenderStateCache::hashRasterizerState): (rx::RenderStateCache::compareRasterizerStates): (rx::RenderStateCache::getRasterizerState): (rx::RenderStateCache::hashDepthStencilState): (rx::RenderStateCache::compareDepthStencilStates): (rx::RenderStateCache::getDepthStencilState): (rx::RenderStateCache::hashSamplerState): (rx::RenderStateCache::compareSamplerStates): (rx::RenderStateCache::getSamplerState): * src/libGLESv2/renderer/RenderStateCache.h: Added. * src/libGLESv2/renderer/RenderTarget.h: Added. (rx::RenderTarget::RenderTarget): (rx::RenderTarget::~RenderTarget): (rx::RenderTarget::getWidth): (rx::RenderTarget::getHeight): (rx::RenderTarget::getInternalFormat): (rx::RenderTarget::getActualFormat): (rx::RenderTarget::getSamples): * src/libGLESv2/renderer/RenderTarget11.cpp: Added. (rx::getRTVSubresourceIndex): (rx::getDSVSubresourceIndex): (rx::RenderTarget11::RenderTarget11): (rx::RenderTarget11::~RenderTarget11): (rx::RenderTarget11::makeRenderTarget11): (rx::RenderTarget11::getTexture): (rx::RenderTarget11::getRenderTargetView): (rx::RenderTarget11::getDepthStencilView): (rx::RenderTarget11::getShaderResourceView): (rx::RenderTarget11::getSubresourceIndex): * src/libGLESv2/renderer/RenderTarget11.h: Added. * src/libGLESv2/renderer/RenderTarget9.cpp: Added. (rx::RenderTarget9::RenderTarget9): (rx::RenderTarget9::~RenderTarget9): (rx::RenderTarget9::makeRenderTarget9): (rx::RenderTarget9::getSurface): * src/libGLESv2/renderer/RenderTarget9.h: Added. * src/libGLESv2/renderer/Renderer.cpp: Added. (rx::Renderer::Renderer): (rx::Renderer::~Renderer): (rx::Renderer::initializeCompiler): (rx::Renderer::compileToBinary): * src/libGLESv2/renderer/Renderer.h: Added. (getComparableOSVersion): (rx::Renderer::getVertexTextureSupport): * src/libGLESv2/renderer/Renderer11.cpp: Added. (rx::Renderer11::Renderer11): (rx::Renderer11::~Renderer11): (rx::Renderer11::makeRenderer11): (rx::Renderer11::initialize): (rx::Renderer11::initializeDevice): (rx::Renderer11::generateConfigs): (rx::Renderer11::deleteConfigs): (rx::Renderer11::sync): (rx::Renderer11::createSwapChain): (rx::Renderer11::setSamplerState): (rx::Renderer11::setTexture): (rx::Renderer11::setRasterizerState): (rx::Renderer11::setBlendState): (rx::Renderer11::setDepthStencilState): (rx::Renderer11::setScissorRectangle): (rx::Renderer11::setViewport): (rx::Renderer11::applyPrimitiveType): (rx::Renderer11::applyRenderTarget): (rx::Renderer11::applyVertexBuffer): (rx::Renderer11::applyIndexBuffer): (rx::Renderer11::drawArrays): (rx::Renderer11::drawElements): (rx::Renderer11::drawLineLoop): (rx::Renderer11::drawTriangleFan): (rx::Renderer11::applyShaders): (rx::Renderer11::applyUniforms): (rx::Renderer11::clear): (rx::Renderer11::maskedClear): (rx::Renderer11::markAllStateDirty): (rx::Renderer11::releaseDeviceResources): (rx::Renderer11::notifyDeviceLost): (rx::Renderer11::isDeviceLost): (rx::Renderer11::testDeviceLost): (rx::Renderer11::testDeviceResettable): (rx::Renderer11::release): (rx::Renderer11::resetDevice): (rx::Renderer11::getAdapterVendor): (rx::Renderer11::getRendererDescription): (rx::Renderer11::getAdapterIdentifier): (rx::Renderer11::getBGRATextureSupport): (rx::Renderer11::getDXT1TextureSupport): (rx::Renderer11::getDXT3TextureSupport): (rx::Renderer11::getDXT5TextureSupport): (rx::Renderer11::getDepthTextureSupport): (rx::Renderer11::getFloat32TextureSupport): (rx::Renderer11::getFloat16TextureSupport): (rx::Renderer11::getLuminanceTextureSupport): (rx::Renderer11::getLuminanceAlphaTextureSupport): (rx::Renderer11::getTextureFilterAnisotropySupport): (rx::Renderer11::getTextureMaxAnisotropy): (rx::Renderer11::getEventQuerySupport): (rx::Renderer11::getViewportBounds): (rx::Renderer11::getMaxVertexTextureImageUnits): (rx::Renderer11::getMaxCombinedTextureImageUnits): (rx::Renderer11::getReservedVertexUniformVectors): (rx::Renderer11::getReservedFragmentUniformVectors): (rx::Renderer11::getMaxVertexUniformVectors): (rx::Renderer11::getMaxFragmentUniformVectors): (rx::Renderer11::getMaxVaryingVectors): (rx::Renderer11::getNonPower2TextureSupport): (rx::Renderer11::getOcclusionQuerySupport): (rx::Renderer11::getInstancingSupport): (rx::Renderer11::getShareHandleSupport): (rx::Renderer11::getDerivativeInstructionSupport): (rx::Renderer11::getPostSubBufferSupport): (rx::Renderer11::getMajorShaderModel): (rx::Renderer11::getMinorShaderModel): (rx::Renderer11::getMaxPointSize): (rx::Renderer11::getMaxViewportDimension): (rx::Renderer11::getMaxTextureWidth): (rx::Renderer11::getMaxTextureHeight): (rx::Renderer11::get32BitIndexSupport): (rx::Renderer11::getMinSwapInterval): (rx::Renderer11::getMaxSwapInterval): (rx::Renderer11::getMaxSupportedSamples): (rx::Renderer11::getNearestSupportedSamples): (rx::Renderer11::getMaxRenderTargets): (rx::Renderer11::copyToRenderTarget): (rx::Renderer11::copyImage): (rx::Renderer11::copyTexture): (rx::Renderer11::unapplyRenderTargets): (rx::Renderer11::setOneTimeRenderTarget): (rx::Renderer11::createRenderTarget): (rx::Renderer11::loadExecutable): (rx::Renderer11::compileToExecutable): (rx::Renderer11::createVertexBuffer): (rx::Renderer11::createIndexBuffer): (rx::Renderer11::createBufferStorage): (rx::Renderer11::createQuery): (rx::Renderer11::createFence): (rx::Renderer11::getRenderTargetResource): (rx::Renderer11::blitRect): (rx::Renderer11::readPixels): (rx::Renderer11::createImage): (rx::Renderer11::generateMipmap): (rx::Renderer11::createTextureStorage2D): (rx::Renderer11::createTextureStorageCube): (rx::getFastPixelCopySize): (rx::readPixelColor): (rx::writePixelColor): (rx::Renderer11::readTextureData): (rx::Renderer11::blitRenderbufferRect): (rx::Renderer11::resolveMultisampledTexture): (rx::Renderer11::getLUID): * src/libGLESv2/renderer/Renderer11.h: Added. (rx::Renderer11::getDevice): (rx::Renderer11::getDeviceContext): (rx::Renderer11::getDxgiFactory): * src/libGLESv2/renderer/Renderer9.cpp: Added. (rx::Renderer9::Renderer9): (rx::Renderer9::~Renderer9): (rx::Renderer9::makeRenderer9): (rx::Renderer9::initialize): (rx::Renderer9::initializeDevice): (rx::Renderer9::getDefaultPresentParameters): (rx::Renderer9::generateConfigs): (rx::Renderer9::deleteConfigs): (rx::Renderer9::startScene): (rx::Renderer9::endScene): (rx::Renderer9::sync): (rx::Renderer9::createSwapChain): (rx::Renderer9::allocateEventQuery): (rx::Renderer9::freeEventQuery): (rx::Renderer9::createVertexShader): (rx::Renderer9::createPixelShader): (rx::Renderer9::createVertexBuffer): (rx::Renderer9::createIndexBuffer): (rx::Renderer9::createBufferStorage): (rx::Renderer9::createQuery): (rx::Renderer9::createFence): (rx::Renderer9::setSamplerState): (rx::Renderer9::setTexture): (rx::Renderer9::setRasterizerState): (rx::Renderer9::setBlendState): (rx::Renderer9::setDepthStencilState): (rx::Renderer9::setScissorRectangle): (rx::Renderer9::setViewport): (rx::Renderer9::applyPrimitiveType): (rx::Renderer9::getNullColorbuffer): (rx::Renderer9::applyRenderTarget): (rx::Renderer9::applyVertexBuffer): (rx::Renderer9::applyIndexBuffer): (rx::Renderer9::drawArrays): (rx::Renderer9::drawElements): (rx::Renderer9::drawLineLoop): (rx::drawPoints): (rx::Renderer9::drawIndexedPoints): (rx::Renderer9::applyShaders): (rx::Renderer9::applyUniforms): (rx::Renderer9::applyUniformnfv): (rx::Renderer9::applyUniformniv): (rx::Renderer9::applyUniformnbv): (rx::Renderer9::clear): (rx::Renderer9::markAllStateDirty): (rx::Renderer9::releaseDeviceResources): (rx::Renderer9::notifyDeviceLost): (rx::Renderer9::isDeviceLost): (rx::Renderer9::testDeviceLost): (rx::Renderer9::testDeviceResettable): (rx::Renderer9::resetDevice): (rx::Renderer9::getAdapterVendor): (rx::Renderer9::getRendererDescription): (rx::Renderer9::getAdapterIdentifier): (rx::Renderer9::getMultiSampleSupport): (rx::Renderer9::getBGRATextureSupport): (rx::Renderer9::getDXT1TextureSupport): (rx::Renderer9::getDXT3TextureSupport): (rx::Renderer9::getDXT5TextureSupport): (rx::Renderer9::getDepthTextureSupport): (rx::Renderer9::getFloat32TextureSupport): (rx::Renderer9::getFloat16TextureSupport): (rx::Renderer9::getLuminanceTextureSupport): (rx::Renderer9::getLuminanceAlphaTextureSupport): (rx::Renderer9::getTextureFilterAnisotropySupport): (rx::Renderer9::getTextureMaxAnisotropy): (rx::Renderer9::getEventQuerySupport): (rx::Renderer9::getMaxVertexTextureImageUnits): (rx::Renderer9::getMaxCombinedTextureImageUnits): (rx::Renderer9::getReservedVertexUniformVectors): (rx::Renderer9::getReservedFragmentUniformVectors): (rx::Renderer9::getMaxVertexUniformVectors): (rx::Renderer9::getMaxFragmentUniformVectors): (rx::Renderer9::getMaxVaryingVectors): (rx::Renderer9::getNonPower2TextureSupport): (rx::Renderer9::getOcclusionQuerySupport): (rx::Renderer9::getInstancingSupport): (rx::Renderer9::getShareHandleSupport): (rx::Renderer9::getDerivativeInstructionSupport): (rx::Renderer9::getPostSubBufferSupport): (rx::Renderer9::getMajorShaderModel): (rx::Renderer9::getMaxPointSize): (rx::Renderer9::getMaxViewportDimension): (rx::Renderer9::getMaxTextureWidth): (rx::Renderer9::getMaxTextureHeight): (rx::Renderer9::get32BitIndexSupport): (rx::Renderer9::getCapsDeclTypes): (rx::Renderer9::getMinSwapInterval): (rx::Renderer9::getMaxSwapInterval): (rx::Renderer9::getMaxSupportedSamples): (rx::Renderer9::getNearestSupportedSamples): (rx::Renderer9::getMaxRenderTargets): (rx::Renderer9::ConvertTextureInternalFormat): (rx::Renderer9::copyToRenderTarget): (rx::Renderer9::getBufferPool): (rx::Renderer9::copyImage): (rx::Renderer9::blitRect): (rx::Renderer9::readPixels): (rx::Renderer9::createRenderTarget): (rx::Renderer9::loadExecutable): (rx::Renderer9::compileToExecutable): (rx::Renderer9::boxFilter): (rx::Renderer9::getTexturePool): (rx::Renderer9::createImage): (rx::Renderer9::generateMipmap): (rx::Renderer9::createTextureStorage2D): (rx::Renderer9::createTextureStorageCube): (rx::Renderer9::getLUID): * src/libGLESv2/renderer/Renderer9.h: Added. (rx::Renderer9::getDevice): * src/libGLESv2/renderer/ShaderCache.h: Added. (rx::ShaderCache::ShaderCache): (rx::ShaderCache::~ShaderCache): (rx::ShaderCache::initialize): (rx::ShaderCache::create): (rx::ShaderCache::clear): (rx::ShaderCache::createShader): * src/libGLESv2/renderer/ShaderExecutable.h: Added. (rx::ShaderExecutable::ShaderExecutable): (rx::ShaderExecutable::~ShaderExecutable): (rx::ShaderExecutable::getFunction): (rx::ShaderExecutable::getLength): * src/libGLESv2/renderer/ShaderExecutable11.cpp: Added. (rx::ShaderExecutable11::ShaderExecutable11): (rx::ShaderExecutable11::~ShaderExecutable11): (rx::ShaderExecutable11::makeShaderExecutable11): (rx::ShaderExecutable11::getVertexShader): (rx::ShaderExecutable11::getPixelShader): (rx::ShaderExecutable11::getGeometryShader): (rx::ShaderExecutable11::getConstantBuffer): * src/libGLESv2/renderer/ShaderExecutable11.h: Added. * src/libGLESv2/renderer/ShaderExecutable9.cpp: Added. (rx::ShaderExecutable9::ShaderExecutable9): (rx::ShaderExecutable9::~ShaderExecutable9): (rx::ShaderExecutable9::makeShaderExecutable9): (rx::ShaderExecutable9::getVertexShader): (rx::ShaderExecutable9::getPixelShader): * src/libGLESv2/renderer/ShaderExecutable9.h: Added. * src/libGLESv2/renderer/SwapChain.h: Added. (rx::SwapChain::SwapChain): (rx::SwapChain::~SwapChain): (rx::SwapChain::getShareHandle): * src/libGLESv2/renderer/SwapChain11.cpp: Added. (rx::SwapChain11::SwapChain11): (rx::SwapChain11::~SwapChain11): (rx::SwapChain11::release): (rx::SwapChain11::releaseOffscreenTexture): (rx::SwapChain11::resetOffscreenTexture): (rx::SwapChain11::resize): (rx::SwapChain11::reset): (rx::SwapChain11::initPassThroughResources): (rx::SwapChain11::swapRect): (rx::SwapChain11::getOffscreenTexture): (rx::SwapChain11::getRenderTarget): (rx::SwapChain11::getRenderTargetShaderResource): (rx::SwapChain11::getDepthStencil): (rx::SwapChain11::getDepthStencilTexture): (rx::SwapChain11::makeSwapChain11): (rx::SwapChain11::recreate): * src/libGLESv2/renderer/SwapChain11.h: Added. (rx::SwapChain11::getWidth): (rx::SwapChain11::getHeight): * src/libGLESv2/renderer/SwapChain9.cpp: Added. (rx::SwapChain9::SwapChain9): (rx::SwapChain9::~SwapChain9): (rx::SwapChain9::release): (rx::convertInterval): (rx::SwapChain9::resize): (rx::SwapChain9::reset): (rx::SwapChain9::swapRect): (rx::SwapChain9::getRenderTarget): (rx::SwapChain9::getDepthStencil): (rx::SwapChain9::getOffscreenTexture): (rx::SwapChain9::makeSwapChain9): (rx::SwapChain9::recreate): * src/libGLESv2/renderer/SwapChain9.h: Added. * src/libGLESv2/renderer/TextureStorage.cpp: Added. (rx::TextureStorageInterface::TextureStorageInterface): (rx::TextureStorageInterface::~TextureStorageInterface): (rx::TextureStorageInterface::isRenderTarget): (rx::TextureStorageInterface::isManaged): (rx::TextureStorageInterface::getTextureSerial): (rx::TextureStorageInterface::issueTextureSerial): (rx::TextureStorageInterface::getLodOffset): (rx::TextureStorageInterface::levelCount): (rx::TextureStorageInterface2D::TextureStorageInterface2D): (rx::TextureStorageInterface2D::~TextureStorageInterface2D): (rx::TextureStorageInterface2D::getRenderTarget): (rx::TextureStorageInterface2D::generateMipmap): (rx::TextureStorageInterface2D::getRenderTargetSerial): (rx::TextureStorageInterfaceCube::TextureStorageInterfaceCube): (rx::TextureStorageInterfaceCube::~TextureStorageInterfaceCube): (rx::TextureStorageInterfaceCube::getRenderTarget): (rx::TextureStorageInterfaceCube::generateMipmap): (rx::TextureStorageInterfaceCube::getRenderTargetSerial): * src/libGLESv2/renderer/TextureStorage.h: Added. (rx::TextureStorage::TextureStorage): (rx::TextureStorage::~TextureStorage): (rx::TextureStorageInterface::getStorageInstance): * src/libGLESv2/renderer/TextureStorage11.cpp: Added. (rx::TextureStorage11::TextureStorage11): (rx::TextureStorage11::~TextureStorage11): (rx::TextureStorage11::makeTextureStorage11): (rx::TextureStorage11::GetTextureBindFlags): (rx::TextureStorage11::IsTextureFormatRenderable): (rx::TextureStorage11::getBindFlags): (rx::TextureStorage11::getBaseTexture): (rx::TextureStorage11::getLodOffset): (rx::TextureStorage11::isRenderTarget): (rx::TextureStorage11::isManaged): (rx::TextureStorage11::levelCount): (rx::TextureStorage11::getSubresourceIndex): (rx::TextureStorage11::updateSubresourceLevel): (rx::TextureStorage11::generateMipmapLayer): (rx::TextureStorage11_2D::TextureStorage11_2D): (rx::TextureStorage11_2D::~TextureStorage11_2D): (rx::TextureStorage11_2D::makeTextureStorage11_2D): (rx::TextureStorage11_2D::getRenderTarget): (rx::TextureStorage11_2D::getSRV): (rx::TextureStorage11_2D::generateMipmap): (rx::TextureStorage11_Cube::TextureStorage11_Cube): (rx::TextureStorage11_Cube::~TextureStorage11_Cube): (rx::TextureStorage11_Cube::makeTextureStorage11_Cube): (rx::TextureStorage11_Cube::getRenderTarget): (rx::TextureStorage11_Cube::getSRV): (rx::TextureStorage11_Cube::generateMipmap): * src/libGLESv2/renderer/TextureStorage11.h: Added. (rx::TextureStorage11::getRenderTarget): (rx::TextureStorage11::generateMipmap): * src/libGLESv2/renderer/TextureStorage9.cpp: Added. (rx::TextureStorage9::TextureStorage9): (rx::TextureStorage9::~TextureStorage9): (rx::TextureStorage9::makeTextureStorage9): (rx::TextureStorage9::GetTextureUsage): (rx::TextureStorage9::IsTextureFormatRenderable): (rx::TextureStorage9::isRenderTarget): (rx::TextureStorage9::isManaged): (rx::TextureStorage9::getPool): (rx::TextureStorage9::getUsage): (rx::TextureStorage9::getLodOffset): (rx::TextureStorage9::levelCount): (rx::TextureStorage9_2D::TextureStorage9_2D): (rx::TextureStorage9_2D::~TextureStorage9_2D): (rx::TextureStorage9_2D::makeTextureStorage9_2D): (rx::TextureStorage9_2D::getSurfaceLevel): (rx::TextureStorage9_2D::getRenderTarget): (rx::TextureStorage9_2D::generateMipmap): (rx::TextureStorage9_2D::getBaseTexture): (rx::TextureStorage9_2D::initializeRenderTarget): (rx::TextureStorage9_Cube::TextureStorage9_Cube): (rx::TextureStorage9_Cube::~TextureStorage9_Cube): (rx::TextureStorage9_Cube::makeTextureStorage9_Cube): (rx::TextureStorage9_Cube::getCubeMapSurface): (rx::TextureStorage9_Cube::getRenderTarget): (rx::TextureStorage9_Cube::generateMipmap): (rx::TextureStorage9_Cube::getBaseTexture): (rx::TextureStorage9_Cube::initializeRenderTarget): * src/libGLESv2/renderer/TextureStorage9.h: Added. (rx::TextureStorage9::getRenderTarget): (rx::TextureStorage9::generateMipmap): * src/libGLESv2/renderer/VertexBuffer.cpp: Added. (rx::VertexBuffer::VertexBuffer): (rx::VertexBuffer::~VertexBuffer): (rx::VertexBuffer::updateSerial): (rx::VertexBuffer::getSerial): (rx::VertexBufferInterface::VertexBufferInterface): (rx::VertexBufferInterface::~VertexBufferInterface): (rx::VertexBufferInterface::getSerial): (rx::VertexBufferInterface::getBufferSize): (rx::VertexBufferInterface::setBufferSize): (rx::VertexBufferInterface::getWritePosition): (rx::VertexBufferInterface::setWritePosition): (rx::VertexBufferInterface::discard): (rx::VertexBufferInterface::storeVertexAttributes): (rx::VertexBufferInterface::storeRawData): (rx::VertexBufferInterface::reserveVertexSpace): (rx::VertexBufferInterface::reserveRawDataSpace): (rx::VertexBufferInterface::getVertexBuffer): (rx::StreamingVertexBufferInterface::StreamingVertexBufferInterface): (rx::StreamingVertexBufferInterface::~StreamingVertexBufferInterface): (rx::StreamingVertexBufferInterface::reserveSpace): (rx::StaticVertexBufferInterface::StaticVertexBufferInterface): (rx::StaticVertexBufferInterface::~StaticVertexBufferInterface): (rx::StaticVertexBufferInterface::lookupAttribute): (rx::StaticVertexBufferInterface::reserveSpace): (rx::StaticVertexBufferInterface::storeVertexAttributes): * src/libGLESv2/renderer/VertexBuffer.h: Added. * src/libGLESv2/renderer/VertexBuffer11.cpp: Added. (rx::VertexBuffer11::VertexBuffer11): (rx::VertexBuffer11::~VertexBuffer11): (rx::VertexBuffer11::initialize): (rx::VertexBuffer11::makeVertexBuffer11): (rx::VertexBuffer11::storeVertexAttributes): (rx::VertexBuffer11::storeRawData): (rx::VertexBuffer11::getSpaceRequired): (rx::VertexBuffer11::requiresConversion): (rx::VertexBuffer11::getBufferSize): (rx::VertexBuffer11::setBufferSize): (rx::VertexBuffer11::discard): (rx::VertexBuffer11::getVertexSize): (rx::VertexBuffer11::getDXGIFormat): (rx::VertexBuffer11::getBuffer): (rx::copyVertexData): (rx::copyFixedVertexData): (rx::copyToFloatVertexData): (rx::VertexBuffer11::getVertexConversion): * src/libGLESv2/renderer/VertexBuffer11.h: Added. * src/libGLESv2/renderer/VertexBuffer9.cpp: Added. (rx::VertexBuffer9::VertexBuffer9): (rx::VertexBuffer9::~VertexBuffer9): (rx::VertexBuffer9::initialize): (rx::VertexBuffer9::makeVertexBuffer9): (rx::VertexBuffer9::storeVertexAttributes): (rx::VertexBuffer9::storeRawData): (rx::VertexBuffer9::getSpaceRequired): (rx::VertexBuffer9::requiresConversion): (rx::VertexBuffer9::getVertexSize): (rx::VertexBuffer9::getDeclType): (rx::VertexBuffer9::getBufferSize): (rx::VertexBuffer9::setBufferSize): (rx::VertexBuffer9::discard): (rx::VertexBuffer9::getBuffer): (rx::VertexBuffer9::initializeTranslations): (rx::VertexBuffer9::typeIndex): (rx::VertexBuffer9::formatConverter): (rx::VertexBuffer9::spaceRequired): * src/libGLESv2/renderer/VertexBuffer9.h: Added. * src/libGLESv2/renderer/VertexDataManager.cpp: Added. (rx::elementsInBuffer): (rx::VertexDataManager::VertexDataManager): (rx::VertexDataManager::~VertexDataManager): (rx::directStoragePossible): (rx::VertexDataManager::prepareVertexData): * src/libGLESv2/renderer/VertexDataManager.h: Added. * src/libGLESv2/renderer/VertexDeclarationCache.cpp: Added. (rx::VertexDeclarationCache::VertexDeclarationCache): (rx::VertexDeclarationCache::~VertexDeclarationCache): (rx::VertexDeclarationCache::applyDeclaration): (rx::VertexDeclarationCache::markStateDirty): * src/libGLESv2/renderer/VertexDeclarationCache.h: Added. * src/libGLESv2/renderer/generatemip.h: Added. (rx::L8::average): (rx::A8L8::average): (rx::A8R8G8B8::average): (rx::A16B16G16R16F::average): (rx::R16F::average): (rx::R16G16F::average): (rx::A32B32G32R32F::average): (rx::R32F::average): (rx::R32G32F::average): (rx::R32G32B32F::average): (rx::GenerateMip): * src/libGLESv2/renderer/renderer11_utils.cpp: Added. (gl_d3d11::ConvertBlendFunc): (gl_d3d11::ConvertBlendOp): (gl_d3d11::ConvertColorMask): (gl_d3d11::ConvertCullMode): (gl_d3d11::ConvertComparison): (gl_d3d11::ConvertDepthMask): (gl_d3d11::ConvertStencilMask): (gl_d3d11::ConvertStencilOp): (gl_d3d11::ConvertFilter): (gl_d3d11::ConvertTextureWrap): (gl_d3d11::ConvertMinLOD): (gl_d3d11::ConvertMaxLOD): (d3d11_gl::ConvertBackBufferFormat): (d3d11_gl::ConvertDepthStencilFormat): (d3d11_gl::ConvertRenderbufferFormat): (d3d11_gl::ConvertTextureInternalFormat): (gl_d3d11::ConvertRenderbufferFormat): (gl_d3d11::ConvertTextureFormat): (d3d11::SetPositionTexCoordVertex): (d3d11::SetPositionDepthColorVertex): (d3d11::ComputePixelSizeBits): (d3d11::ComputeBlockSizeBits): (d3d11::IsCompressed): (d3d11::GetTextureFormatDimensionAlignment): (d3d11::IsDepthStencilFormat): (d3d11::GetDepthTextureFormat): (d3d11::GetDepthShaderResourceFormat): (d3d11::SetDebugName): * src/libGLESv2/renderer/renderer11_utils.h: Added. (d3d11::isDeviceLostError): * src/libGLESv2/renderer/renderer9_utils.cpp: Added. (gl_d3d9::ConvertComparison): (gl_d3d9::ConvertColor): (gl_d3d9::ConvertBlendFunc): (gl_d3d9::ConvertBlendOp): (gl_d3d9::ConvertStencilOp): (gl_d3d9::ConvertTextureWrap): (gl_d3d9::ConvertCullMode): (gl_d3d9::ConvertCubeFace): (gl_d3d9::ConvertColorMask): (gl_d3d9::ConvertMagFilter): (gl_d3d9::ConvertMinFilter): (gl_d3d9::ConvertRenderbufferFormat): (gl_d3d9::GetMultisampleTypeFromSamples): (d3d9_gl::GetStencilSize): (d3d9_gl::GetAlphaSize): (d3d9_gl::GetSamplesFromMultisampleType): (d3d9_gl::IsFormatChannelEquivalent): (d3d9_gl::ConvertBackBufferFormat): (d3d9_gl::ConvertDepthStencilFormat): (d3d9_gl::ConvertRenderTargetFormat): (d3d9_gl::GetEquivalentFormat): (d3d9::IsCompressedFormat): (d3d9::ComputeRowSize): * src/libGLESv2/renderer/renderer9_utils.h: Added. (d3d9::isDeviceLostError): * src/libGLESv2/renderer/shaders: Added. * src/libGLESv2/renderer/shaders/Blit.ps: Added. * src/libGLESv2/renderer/shaders/Blit.vs: Added. * src/libGLESv2/renderer/shaders/Clear11.hlsl: Added. * src/libGLESv2/renderer/shaders/Passthrough11.hlsl: Added. * src/libGLESv2/renderer/shaders/compiled: Added. * src/libGLESv2/renderer/shaders/compiled/clear11vs.h: Added. * src/libGLESv2/renderer/shaders/compiled/clearmultiple11ps.h: Added. * src/libGLESv2/renderer/shaders/compiled/clearsingle11ps.h: Added. * src/libGLESv2/renderer/shaders/compiled/componentmaskps.h: Added. * src/libGLESv2/renderer/shaders/compiled/flipyvs.h: Added. * src/libGLESv2/renderer/shaders/compiled/luminanceps.h: Added. * src/libGLESv2/renderer/shaders/compiled/passthrough11vs.h: Added. * src/libGLESv2/renderer/shaders/compiled/passthroughlum11ps.h: Added. * src/libGLESv2/renderer/shaders/compiled/passthroughlumalpha11ps.h: Added. * src/libGLESv2/renderer/shaders/compiled/passthroughps.h: Added. * src/libGLESv2/renderer/shaders/compiled/passthroughrgb11ps.h: Added. * src/libGLESv2/renderer/shaders/compiled/passthroughrgba11ps.h: Added. * src/libGLESv2/renderer/shaders/compiled/standardvs.h: Added. * src/libGLESv2/renderer/shaders/generate_shaders.bat: Added. * src/libGLESv2/renderer/vertexconversion.h: Added. (rx::Identity::convert): (rx::Cast::convert): (rx::Normalize::convert): (rx::FixedToFloat::convert): (rx::SimpleDefaultValues::zero): (rx::SimpleDefaultValues::one): (rx::NormalizedDefaultValues::zero): (rx::NormalizedDefaultValues::one): (rx::VertexDataConverter::convertArray): (rx::VertexDataConverter::pointerAddBytes): (rx::VertexDataConverter::copyComponent): * src/libGLESv2/resource.h: Added. * src/libGLESv2/utilities.cpp: Added. (gl::UniformComponentCount): (gl::UniformComponentType): (gl::UniformComponentSize): (gl::UniformInternalSize): (gl::UniformExternalSize): (gl::VariableRowCount): (gl::VariableColumnCount): (gl::AllocateFirstFreeBits): (gl::ComputePitch): (gl::ComputeCompressedPitch): (gl::ComputeCompressedSize): (gl::IsCompressed): (gl::IsDepthTexture): (gl::IsStencilTexture): (gl::MakeValidSize): (gl::ComputePixelSize): (gl::IsCubemapTextureTarget): (gl::IsInternalTextureTarget): (gl::ConvertSizedInternalFormat): (gl::ExtractFormat): (gl::ExtractType): (gl::IsColorRenderable): (gl::IsDepthRenderable): (gl::IsStencilRenderable): (gl::IsFloat32Format): (gl::IsFloat16Format): (gl::GetAlphaSize): (gl::GetRedSize): (gl::GetGreenSize): (gl::GetBlueSize): (gl::GetDepthSize): (gl::GetStencilSize): (gl::IsTriangleMode): (getTempPath): (writeFile): * src/libGLESv2/utilities.h: Added. * src/third_party/murmurhash: Added. * src/third_party/murmurhash/LICENSE: Added. * src/third_party/murmurhash/MurmurHash3.cpp: Added, replaced tabs with spaces. (rotl32): (rotl64): (getblock): (fmix): (MurmurHash3_x86_32): (MurmurHash3_x86_128): (MurmurHash3_x64_128): * src/third_party/murmurhash/MurmurHash3.h: Added, replaced tabs with spaces. 2013-07-20 Dean Jackson Updated ANGLE is leaking like a sieve https://bugs.webkit.org/show_bug.cgi?id=118939 Rollout 152863, r152821, r152929 and r152755. * ANGLE.plist: * ANGLE.xcodeproj/project.pbxproj: * DerivedSources.make: Removed. * GNUmakefile.am: * Target.pri: * include/GLSLANG/ShaderLang.h: * src/compiler/BaseTypes.h: (getQualifierString): * src/compiler/Common.h: (EncodeSourceLoc): (DecodeSourceLoc): * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::Init): (TCompiler::compile): (TCompiler::detectRecursion): * src/compiler/ConstantUnion.h: (ConstantUnion::ConstantUnion): * src/compiler/DetectCallDepth.cpp: Removed. * src/compiler/DetectRecursion.cpp: Added. (DetectRecursion::FunctionNode::FunctionNode): (DetectRecursion::FunctionNode::getName): (DetectRecursion::FunctionNode::addCallee): (DetectRecursion::FunctionNode::detectRecursion): (DetectRecursion::DetectRecursion): (DetectRecursion::~DetectRecursion): (DetectRecursion::visitAggregate): (DetectRecursion::detectRecursion): (DetectRecursion::findFunctionByName): * src/compiler/DetectRecursion.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/DetectCallDepth.h. * src/compiler/Diagnostics.cpp: (TDiagnostics::writeInfo): * src/compiler/ForLoopUnroll.cpp: (ForLoopUnroll::evaluateIntConstant): * src/compiler/InfoSink.cpp: (TInfoSinkBase::prefix): (TInfoSinkBase::location): (TInfoSinkBase::message): * src/compiler/InfoSink.h: * src/compiler/Initialize.cpp: (BuiltInFunctionsCommon): (BuiltInFunctionsVertex): (TBuiltIns::initialize): (IdentifyBuiltIns): (InitExtensionBehavior): * src/compiler/Intermediate.cpp: (TIntermediate::addSymbol): (TIntermediate::addBinaryMath): (TIntermediate::addAssign): (TIntermediate::addIndex): (TIntermediate::addUnaryMath): (TIntermediate::setAggregateOperator): (TIntermediate::addConversion): (TIntermediate::growAggregate): (TIntermediate::makeAggregate): (TIntermediate::addSelection): (TIntermediate::addComma): (TIntermediate::addConstantUnion): (TIntermediate::addSwizzle): (TIntermediate::addLoop): (TIntermediate::addBranch): (TIntermUnary::promote): (TIntermBinary::promote): (CompareStruct): (CompareStructure): (TIntermConstantUnion::fold): (TIntermediate::promoteConstantUnion): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::writeVariablePrecision): * src/compiler/OutputGLSL.h: * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::writeVariableType): (TOutputGLSLBase::writeConstantUnion): (TOutputGLSLBase::visitBinary): (TOutputGLSLBase::visitAggregate): (TOutputGLSLBase::getTypeName): (TOutputGLSLBase::hashFunctionName): * src/compiler/OutputGLSLBase.h: * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitSymbol): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::typeString): (sh::OutputHLSL::initializer): (sh::OutputHLSL::addConstructor): (sh::OutputHLSL::writeConstantUnion): (sh::OutputHLSL::decorateField): * src/compiler/OutputHLSL.h: * src/compiler/ParseHelper.cpp: (TParseContext::parseVectorFields): (TParseContext::parseMatrixFields): (TParseContext::error): (TParseContext::warning): (TParseContext::assignError): (TParseContext::unaryOpError): (TParseContext::binaryOpError): (TParseContext::precisionErrorCheck): (TParseContext::lValueErrorCheck): (TParseContext::globalErrorCheck): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::voidErrorCheck): (TParseContext::boolErrorCheck): (TParseContext::samplerErrorCheck): (TParseContext::structQualifierErrorCheck): (TParseContext::parameterSamplerErrorCheck): (TParseContext::containsSampler): (TParseContext::arraySizeErrorCheck): (TParseContext::arrayQualifierErrorCheck): (TParseContext::arrayTypeErrorCheck): (TParseContext::arrayErrorCheck): (TParseContext::arraySetMaxSize): (TParseContext::nonInitConstErrorCheck): (TParseContext::nonInitErrorCheck): (TParseContext::paramErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::handleExtensionDirective): (TParseContext::handlePragmaDirective): (TParseContext::findFunction): (TParseContext::executeInitializer): (TParseContext::addConstructor): (TParseContext::constructBuiltIn): (TParseContext::constructStruct): (TParseContext::addConstVectorNode): (TParseContext::addConstMatrixNode): (TParseContext::addConstArrayNode): (TParseContext::addConstStruct): (TParseContext::enterStructDeclaration): (TParseContext::structNestingErrorCheck): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): (TParseContext::pragma): * src/compiler/PoolAlloc.cpp: (TPoolAllocator::allocate): * src/compiler/ShHandle.h: * src/compiler/ShaderLang.cpp: (ShInitBuiltInResources): * src/compiler/SymbolTable.cpp: (TType::TType): (TType::buildMangledName): (TType::getStructSize): (TType::computeDeepestStructNesting): (TType::isStructureContainingArrays): (TSymbolTableLevel::relateToExtension): (TSymbol::TSymbol): (TVariable::TVariable): (TVariable::clone): (TFunction::TFunction): (TFunction::clone): (TSymbolTableLevel::clone): (TSymbolTable::copyTable): * src/compiler/SymbolTable.h: (TVariable::TVariable): (TVariable::updateArrayInformationType): (TVariable::getArrayInformationType): (TParameter::copyParam): (TFunction::relateToExtension): (TFunction::getExtension): * src/compiler/Types.h: (NewPoolTTypeList): (TType::TType): (TType::copyType): (TType::clone): (TType::getObjectSize): (TType::getMaxArraySize): (TType::setMaxArraySize): (TType::clearArrayness): (TType::setArrayInformationType): (TType::getArrayInformationType): (TType::getStruct): (TType::setStruct): (TType::getTypeName): (TType::setTypeName): (TType::isField): (TType::getFieldName): (TType::setFieldName): (TType::getMangledName): (TType::getDeepestStructNesting): (TPublicType::setBasic): * src/compiler/VariableInfo.cpp: (getUserDefinedVariableInfo): * src/compiler/builtin_symbol_table.cpp: Removed. * src/compiler/builtin_symbol_table.h: Removed. * src/compiler/builtin_symbols.json: Removed. * src/compiler/generate_builtin_symbol_table.py: Removed. * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (yy_get_previous_state): (yy_try_NUL_trans): (yy_push_state): (yy_pop_state): (yy_top_state): (string_input): (check_type): (reserved_word): (yyerror): (glslang_scan): * src/compiler/glslang_tab.cpp: * src/compiler/glslang_tab.h: * src/compiler/intermOut.cpp: (TOutputTraverser::visitUnary): (TOutputTraverser::visitAggregate): (TOutputTraverser::visitConstantUnion): * src/compiler/intermediate.h: (TIntermNode::TIntermNode): (TIntermNode::getLine): (TIntermNode::setLine): (TIntermNode::~TIntermNode): (TIntermConstantUnion::setUnionArrayPointer): (TIntermAggregate::TIntermAggregate): (TIntermAggregate::setEndLine): (TIntermAggregate::getEndLine): (TIntermTraverser::TIntermTraverser): (TIntermTraverser::incrementDepth): * src/compiler/localintermediate.h: * src/compiler/parseConst.cpp: (TConstTraverser::visitSymbol): (TConstTraverser::visitBinary): (TConstTraverser::visitUnary): (TConstTraverser::visitAggregate): (TConstTraverser::visitSelection): (TConstTraverser::visitConstantUnion): (TConstTraverser::visitLoop): (TConstTraverser::visitBranch): (TIntermediate::parseConstTree): * src/compiler/timing/RestrictVertexShaderTiming.cpp: (RestrictVertexShaderTiming::visitSymbol): * src/libEGL/Config.cpp: Removed. * src/libEGL/Config.h: Removed. * src/libEGL/Display.cpp: Removed. * src/libEGL/Display.h: Removed. * src/libEGL/README: Added. * src/libEGL/ShaderCache.h: Removed. * src/libEGL/Surface.cpp: Removed. * src/libEGL/Surface.h: Removed. * src/libEGL/libEGL.cpp: Removed. * src/libEGL/libEGL.def: Removed. * src/libEGL/libEGL.rc: Removed. * src/libEGL/libEGL.vcxproj: Removed. * src/libEGL/libEGL.vcxproj.filters: Removed. * src/libEGL/main.cpp: Removed. * src/libEGL/main.h: Removed. * src/libEGL/resource.h: Removed. * src/libGLESv2/BinaryStream.h: Removed. * src/libGLESv2/Blit.cpp: Removed. * src/libGLESv2/Blit.h: Removed. * src/libGLESv2/Buffer.cpp: Removed. * src/libGLESv2/Buffer.h: Removed. * src/libGLESv2/Context.cpp: Removed. * src/libGLESv2/Context.h: Removed. * src/libGLESv2/D3DConstantTable.cpp: Removed. * src/libGLESv2/D3DConstantTable.h: Removed. * src/libGLESv2/Fence.cpp: Removed. * src/libGLESv2/Fence.h: Removed. * src/libGLESv2/Float16ToFloat32.cpp: Removed. * src/libGLESv2/Float16ToFloat32.py: Removed. * src/libGLESv2/Framebuffer.cpp: Removed. * src/libGLESv2/Framebuffer.h: Removed. * src/libGLESv2/HandleAllocator.cpp: Removed. * src/libGLESv2/HandleAllocator.h: Removed. * src/libGLESv2/IndexDataManager.cpp: Removed. * src/libGLESv2/IndexDataManager.h: Removed. * src/libGLESv2/Program.cpp: Removed. * src/libGLESv2/Program.h: Removed. * src/libGLESv2/ProgramBinary.cpp: Removed. * src/libGLESv2/ProgramBinary.h: Removed. * src/libGLESv2/Query.cpp: Removed. * src/libGLESv2/Query.h: Removed. * src/libGLESv2/README: Added. * src/libGLESv2/Renderbuffer.cpp: Removed. * src/libGLESv2/Renderbuffer.h: Removed. * src/libGLESv2/ResourceManager.cpp: Removed. * src/libGLESv2/ResourceManager.h: Removed. * src/libGLESv2/Shader.cpp: Removed. * src/libGLESv2/Shader.h: Removed. * src/libGLESv2/Texture.cpp: Removed. * src/libGLESv2/Texture.h: Removed. * src/libGLESv2/TextureSSE2.cpp: Removed. * src/libGLESv2/VertexDataManager.cpp: Removed. * src/libGLESv2/VertexDataManager.h: Removed. * src/libGLESv2/libGLESv2.cpp: Removed. * src/libGLESv2/libGLESv2.def: Removed. * src/libGLESv2/libGLESv2.rc: Removed. * src/libGLESv2/libGLESv2.vcxproj: Removed. * src/libGLESv2/libGLESv2.vcxproj.filters: Removed. * src/libGLESv2/main.cpp: Removed. * src/libGLESv2/main.h: Removed. * src/libGLESv2/mathutil.h: Removed. * src/libGLESv2/resource.h: Removed. * src/libGLESv2/shaders/Blit.ps: Removed. * src/libGLESv2/shaders/Blit.vs: Removed. * src/libGLESv2/shaders/componentmaskps.h: Removed. * src/libGLESv2/shaders/flipyvs.h: Removed. * src/libGLESv2/shaders/generate_shaders.bat: Removed. * src/libGLESv2/shaders/luminanceps.h: Removed. * src/libGLESv2/shaders/passthroughps.h: Removed. * src/libGLESv2/shaders/standardvs.h: Removed. * src/libGLESv2/utilities.cpp: Removed. * src/libGLESv2/utilities.h: Removed. * src/libGLESv2/vertexconversion.h: Removed. 2013-07-19 Alex Christensen Generate derived files in ANGLE at build time rather than when updating from upstream. https://bugs.webkit.org/show_bug.cgi?id=118872 Reviewed by Mark Rowe. * ANGLE.xcodeproj/project.pbxproj: Made Derived Sources target which calls DerivedSources.make, moved generated files into Derived Sources group. * DerivedSources.make: Added. 2013-07-18 Alex Christensen Added previously unincluded files from ANGLE r2426 with these exceptions: No gyp files are included. No WebKit ports use them. ANGLE.sln is not included. I will not use that. translator_common and translator_hlsl projects and filters are not included. I will need to make a customized translator project that uses the GLSL translator instead of the HLSL. https://bugs.webkit.org/show_bug.cgi?id=118833 Reviewed by Dean Jackson. * src/compiler/builtin_symbols.json: Added. * src/compiler/generate_builtin_symbol_table.py: Added. (parseBuiltin): * src/libEGL: Replaced. * src/libEGL/Config.cpp: Added. (egl::Config::Config): (egl::Config::setDefaults): (egl::Config::set): (egl::Config::getHandle): (egl::SortConfig::SortConfig): (egl::SortConfig::scanForWantedComponents): (egl::SortConfig::wantedComponentsSize): (egl::SortConfig::operator()): (egl::ConfigSet::ConfigSet): (egl::ConfigSet::add): (egl::ConfigSet::size): (egl::ConfigSet::getConfigs): (egl::ConfigSet::get): * src/libEGL/Config.h: Added. * src/libEGL/Display.cpp: Added. (egl::Display::getDisplay): (egl::Display::Display): (egl::Display::~Display): (egl::Display::initialize): (egl::Display::terminate): (egl::Display::startScene): (egl::Display::endScene): (egl::Display::getConfigs): (egl::Display::getConfigAttrib): (egl::Display::createDevice): (egl::Display::initializeDevice): (egl::Display::resetDevice): (egl::Display::createWindowSurface): (egl::Display::createOffscreenSurface): (egl::Display::createContext): (egl::Display::restoreLostDevice): (egl::Display::destroySurface): (egl::Display::destroyContext): (egl::Display::notifyDeviceLost): (egl::Display::isDeviceLost): (egl::Display::isInitialized): (egl::Display::isValidConfig): (egl::Display::isValidContext): (egl::Display::isValidSurface): (egl::Display::hasExistingWindowSurface): (egl::Display::getMinSwapInterval): (egl::Display::getMaxSwapInterval): (egl::Display::getDevice): (egl::Display::getDeviceCaps): (egl::Display::getAdapterIdentifier): (egl::Display::testDeviceLost): (egl::Display::testDeviceResettable): (egl::Display::sync): (egl::Display::allocateEventQuery): (egl::Display::freeEventQuery): (egl::Display::getMultiSampleSupport): (egl::Display::getDXT1TextureSupport): (egl::Display::getDXT3TextureSupport): (egl::Display::getDXT5TextureSupport): (egl::Display::getDepthTextureSupport): (egl::Display::getFloat32TextureSupport): (egl::Display::getFloat16TextureSupport): (egl::Display::getLuminanceTextureSupport): (egl::Display::getLuminanceAlphaTextureSupport): (egl::Display::getTextureFilterAnisotropySupport): (egl::Display::getBufferPool): (egl::Display::getTexturePool): (egl::Display::getEventQuerySupport): (egl::Display::getDefaultPresentParameters): (egl::Display::initExtensionString): (egl::Display::getExtensionString): (egl::Display::initVendorString): (egl::Display::getVendorString): (egl::Display::shareHandleSupported): (egl::Display::createVertexShader): (egl::Display::compileShaderSource): (egl::Display::createPixelShader): (egl::Display::getVertexTextureSupport): (egl::Display::getNonPower2TextureSupport): (egl::Display::getOcclusionQuerySupport): (egl::Display::getInstancingSupport): * src/libEGL/Display.h: Added. (getComparableOSVersion): (egl::Display::isD3d9ExDevice): * src/libEGL/README: Removed. * src/libEGL/ShaderCache.h: Added. (egl::ShaderCache::ShaderCache): (egl::ShaderCache::~ShaderCache): (egl::ShaderCache::initialize): (egl::ShaderCache::create): (egl::ShaderCache::clear): (egl::ShaderCache::createShader): * src/libEGL/Surface.cpp: Added. (egl::Surface::Surface): (egl::Surface::~Surface): (egl::Surface::initialize): (egl::Surface::release): (egl::Surface::resetSwapChain): (egl::Surface::swapRect): (egl::Surface::getWindowHandle): (egl::SurfaceWindowProc): (egl::Surface::subclassWindow): (egl::Surface::unsubclassWindow): (egl::Surface::checkForOutOfDateSwapChain): (egl::Surface::convertInterval): (egl::Surface::swap): (egl::Surface::postSubBuffer): (egl::Surface::getWidth): (egl::Surface::getHeight): (egl::Surface::isPostSubBufferSupported): (egl::Surface::getRenderTarget): (egl::Surface::getDepthStencil): (egl::Surface::getOffscreenTexture): (egl::Surface::setSwapInterval): (egl::Surface::getTextureFormat): (egl::Surface::getTextureTarget): (egl::Surface::setBoundTexture): (egl::Surface::getBoundTexture): (egl::Surface::getFormat): * src/libEGL/Surface.h: Added. (egl::Surface::getShareHandle): * src/libEGL/libEGL.cpp: Added. (validateDisplay): (validateConfig): (validateContext): (validateSurface): * src/libEGL/libEGL.def: Added. * src/libEGL/libEGL.rc: Added. * src/libEGL/libEGL.vcxproj: Added. * src/libEGL/libEGL.vcxproj.filters: Added. * src/libEGL/main.cpp: Added. (DllMain): (egl::setCurrentError): (egl::getCurrentError): (egl::setCurrentAPI): (egl::getCurrentAPI): (egl::setCurrentDisplay): (egl::getCurrentDisplay): (egl::setCurrentDrawSurface): (egl::getCurrentDrawSurface): (egl::setCurrentReadSurface): (egl::getCurrentReadSurface): (error): * src/libEGL/main.h: Added. (error): (success): * src/libEGL/resource.h: Added. * src/libGLESv2: Replaced. * src/libGLESv2/BinaryStream.h: Added. (gl::BinaryInputStream::BinaryInputStream): (gl::BinaryInputStream::read): (gl::BinaryInputStream::skip): (gl::BinaryInputStream::offset): (gl::BinaryInputStream::error): (gl::BinaryInputStream::endOfStream): (gl::BinaryOutputStream::BinaryOutputStream): (gl::BinaryOutputStream::write): (gl::BinaryOutputStream::length): (gl::BinaryOutputStream::data): * src/libGLESv2/Blit.cpp: Added. (gl::Blit::Blit): (gl::Blit::~Blit): (gl::Blit::initGeometry): (gl::Blit::setShader): (gl::Blit::setVertexShader): (gl::Blit::setPixelShader): (gl::Blit::getSurfaceRect): (gl::Blit::boxFilter): (gl::Blit::copy): (gl::Blit::formatConvert): (gl::Blit::setFormatConvertShaders): (gl::Blit::copySurfaceToTexture): (gl::Blit::setViewport): (gl::Blit::setCommonBlitState): (gl::Blit::render): (gl::Blit::saveState): (gl::Blit::restoreState): * src/libGLESv2/Blit.h: Added. * src/libGLESv2/Buffer.cpp: Added. (gl::Buffer::Buffer): (gl::Buffer::~Buffer): (gl::Buffer::bufferData): (gl::Buffer::bufferSubData): (gl::Buffer::getStaticVertexBuffer): (gl::Buffer::getStaticIndexBuffer): (gl::Buffer::invalidateStaticData): (gl::Buffer::promoteStaticUsage): * src/libGLESv2/Buffer.h: Added. (gl::Buffer::data): (gl::Buffer::size): (gl::Buffer::usage): * src/libGLESv2/Context.cpp: Added. (gl::makeStaticString): (gl::Context::Context): (gl::Context::~Context): (gl::Context::makeCurrent): (gl::Context::markAllStateDirty): (gl::Context::markDxUniformsDirty): (gl::Context::markContextLost): (gl::Context::isContextLost): (gl::Context::setClearColor): (gl::Context::setClearDepth): (gl::Context::setClearStencil): (gl::Context::setCullFace): (gl::Context::isCullFaceEnabled): (gl::Context::setCullMode): (gl::Context::setFrontFace): (gl::Context::setDepthTest): (gl::Context::isDepthTestEnabled): (gl::Context::setDepthFunc): (gl::Context::setDepthRange): (gl::Context::setBlend): (gl::Context::isBlendEnabled): (gl::Context::setBlendFactors): (gl::Context::setBlendColor): (gl::Context::setBlendEquation): (gl::Context::setStencilTest): (gl::Context::isStencilTestEnabled): (gl::Context::setStencilParams): (gl::Context::setStencilBackParams): (gl::Context::setStencilWritemask): (gl::Context::setStencilBackWritemask): (gl::Context::setStencilOperations): (gl::Context::setStencilBackOperations): (gl::Context::setPolygonOffsetFill): (gl::Context::isPolygonOffsetFillEnabled): (gl::Context::setPolygonOffsetParams): (gl::Context::setSampleAlphaToCoverage): (gl::Context::isSampleAlphaToCoverageEnabled): (gl::Context::setSampleCoverage): (gl::Context::isSampleCoverageEnabled): (gl::Context::setSampleCoverageParams): (gl::Context::setScissorTest): (gl::Context::isScissorTestEnabled): (gl::Context::setDither): (gl::Context::isDitherEnabled): (gl::Context::setLineWidth): (gl::Context::setGenerateMipmapHint): (gl::Context::setFragmentShaderDerivativeHint): (gl::Context::setViewportParams): (gl::Context::setScissorParams): (gl::Context::setColorMask): (gl::Context::setDepthMask): (gl::Context::setActiveSampler): (gl::Context::getReadFramebufferHandle): (gl::Context::getDrawFramebufferHandle): (gl::Context::getRenderbufferHandle): (gl::Context::getArrayBufferHandle): (gl::Context::getActiveQuery): (gl::Context::setEnableVertexAttribArray): (gl::Context::getVertexAttribState): (gl::Context::setVertexAttribState): (gl::Context::getVertexAttribPointer): (gl::Context::getVertexAttributes): (gl::Context::setPackAlignment): (gl::Context::getPackAlignment): (gl::Context::setUnpackAlignment): (gl::Context::getUnpackAlignment): (gl::Context::setPackReverseRowOrder): (gl::Context::getPackReverseRowOrder): (gl::Context::createBuffer): (gl::Context::createProgram): (gl::Context::createShader): (gl::Context::createTexture): (gl::Context::createRenderbuffer): (gl::Context::createFramebuffer): (gl::Context::createFence): (gl::Context::createQuery): (gl::Context::deleteBuffer): (gl::Context::deleteShader): (gl::Context::deleteProgram): (gl::Context::deleteTexture): (gl::Context::deleteRenderbuffer): (gl::Context::deleteFramebuffer): (gl::Context::deleteFence): (gl::Context::deleteQuery): (gl::Context::getBuffer): (gl::Context::getShader): (gl::Context::getProgram): (gl::Context::getTexture): (gl::Context::getRenderbuffer): (gl::Context::getReadFramebuffer): (gl::Context::getDrawFramebuffer): (gl::Context::bindArrayBuffer): (gl::Context::bindElementArrayBuffer): (gl::Context::bindTexture2D): (gl::Context::bindTextureCubeMap): (gl::Context::bindReadFramebuffer): (gl::Context::bindDrawFramebuffer): (gl::Context::bindRenderbuffer): (gl::Context::useProgram): (gl::Context::linkProgram): (gl::Context::setProgramBinary): (gl::Context::beginQuery): (gl::Context::endQuery): (gl::Context::setFramebufferZero): (gl::Context::setRenderbufferStorage): (gl::Context::getFramebuffer): (gl::Context::getFence): (gl::Context::getQuery): (gl::Context::getArrayBuffer): (gl::Context::getElementArrayBuffer): (gl::Context::getCurrentProgramBinary): (gl::Context::getTexture2D): (gl::Context::getTextureCubeMap): (gl::Context::getSamplerTexture): (gl::Context::getBooleanv): (gl::Context::getFloatv): (gl::Context::getIntegerv): (gl::Context::getQueryParameterInfo): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::applyVertexBuffer): (gl::Context::applyIndexBuffer): (gl::Context::applyShaders): (gl::Context::applyTextures): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::sync): (gl::Context::drawLineLoop): (gl::Context::recordInvalidEnum): (gl::Context::recordInvalidValue): (gl::Context::recordInvalidOperation): (gl::Context::recordOutOfMemory): (gl::Context::recordInvalidFramebufferOperation): (gl::Context::getError): (gl::Context::getResetStatus): (gl::Context::isResetNotificationEnabled): (gl::Context::supportsShaderModel3): (gl::Context::getMaximumPointSize): (gl::Context::getMaximumVaryingVectors): (gl::Context::getMaximumVertexTextureImageUnits): (gl::Context::getMaximumCombinedTextureImageUnits): (gl::Context::getMaximumFragmentUniformVectors): (gl::Context::getMaxSupportedSamples): (gl::Context::getNearestSupportedSamples): (gl::Context::supportsEventQueries): (gl::Context::supportsOcclusionQueries): (gl::Context::supportsDXT1Textures): (gl::Context::supportsDXT3Textures): (gl::Context::supportsDXT5Textures): (gl::Context::supportsFloat32Textures): (gl::Context::supportsFloat32LinearFilter): (gl::Context::supportsFloat32RenderableTextures): (gl::Context::supportsFloat16Textures): (gl::Context::supportsFloat16LinearFilter): (gl::Context::supportsFloat16RenderableTextures): (gl::Context::getMaximumRenderbufferDimension): (gl::Context::getMaximumTextureDimension): (gl::Context::getMaximumCubeTextureDimension): (gl::Context::getMaximumTextureLevel): (gl::Context::supportsLuminanceTextures): (gl::Context::supportsLuminanceAlphaTextures): (gl::Context::supportsDepthTextures): (gl::Context::supports32bitIndices): (gl::Context::supportsNonPower2Texture): (gl::Context::supportsInstancing): (gl::Context::supportsTextureFilterAnisotropy): (gl::Context::supportsDerivativeInstructions): (gl::Context::getTextureMaxAnisotropy): (gl::Context::getCurrentReadFormatType): (gl::Context::detachBuffer): (gl::Context::detachTexture): (gl::Context::detachFramebuffer): (gl::Context::detachRenderbuffer): (gl::Context::getIncompleteTexture): (gl::Context::skipDraw): (gl::Context::isTriangleMode): (gl::Context::setVertexAttrib): (gl::Context::setVertexAttribDivisor): (gl::Context::initExtensionString): (gl::Context::getExtensionString): (gl::Context::initRendererString): (gl::Context::getRendererString): (gl::Context::blitFramebuffer): (gl::VertexDeclarationCache::VertexDeclarationCache): (gl::VertexDeclarationCache::~VertexDeclarationCache): (gl::VertexDeclarationCache::applyDeclaration): (gl::VertexDeclarationCache::markStateDirty): * src/libGLESv2/Context.h: Added. (gl::VertexAttribute::VertexAttribute): (gl::VertexAttribute::typeSize): (gl::VertexAttribute::stride): (gl::Context::getBlitter): (gl::Context::getDeviceCaps): * src/libGLESv2/D3DConstantTable.cpp: Added. (gl::D3DConstant::D3DConstant): (gl::D3DConstant::~D3DConstant): (gl::D3DConstant::addStructMembers): (gl::D3DConstantTable::D3DConstantTable): (gl::D3DConstantTable::~D3DConstantTable): (gl::D3DConstantTable::getConstant): (gl::D3DConstantTable::getConstantByName): * src/libGLESv2/D3DConstantTable.h: Added. (gl::D3DConstantTable::error): (gl::D3DConstantTable::constants): * src/libGLESv2/Fence.cpp: Added. (gl::Fence::Fence): (gl::Fence::~Fence): (gl::Fence::isFence): (gl::Fence::setFence): (gl::Fence::testFence): (gl::Fence::finishFence): (gl::Fence::getFenceiv): * src/libGLESv2/Fence.h: Added. * src/libGLESv2/Float16ToFloat32.cpp: Added. (gl::float16ToFloat32): * src/libGLESv2/Float16ToFloat32.py: Added. (convertMantissa): (convertExponent): (convertOffset): * src/libGLESv2/Framebuffer.cpp: Added. (gl::Framebuffer::Framebuffer): (gl::Framebuffer::~Framebuffer): (gl::Framebuffer::lookupRenderbuffer): (gl::Framebuffer::setColorbuffer): (gl::Framebuffer::setDepthbuffer): (gl::Framebuffer::setStencilbuffer): (gl::Framebuffer::detachTexture): (gl::Framebuffer::detachRenderbuffer): (gl::Framebuffer::getRenderTargetSerial): (gl::Framebuffer::getRenderTarget): (gl::Framebuffer::getDepthStencil): (gl::Framebuffer::getDepthbufferSerial): (gl::Framebuffer::getStencilbufferSerial): (gl::Framebuffer::getColorbuffer): (gl::Framebuffer::getDepthbuffer): (gl::Framebuffer::getStencilbuffer): (gl::Framebuffer::getNullColorbuffer): (gl::Framebuffer::getColorbufferType): (gl::Framebuffer::getDepthbufferType): (gl::Framebuffer::getStencilbufferType): (gl::Framebuffer::getColorbufferHandle): (gl::Framebuffer::getDepthbufferHandle): (gl::Framebuffer::getStencilbufferHandle): (gl::Framebuffer::hasStencil): (gl::Framebuffer::completeness): (gl::DefaultFramebuffer::DefaultFramebuffer): (gl::Framebuffer::getSamples): (gl::DefaultFramebuffer::completeness): * src/libGLESv2/Framebuffer.h: Added. * src/libGLESv2/HandleAllocator.cpp: Added. (gl::HandleAllocator::HandleAllocator): (gl::HandleAllocator::~HandleAllocator): (gl::HandleAllocator::setBaseHandle): (gl::HandleAllocator::allocate): (gl::HandleAllocator::release): * src/libGLESv2/HandleAllocator.h: Added. * src/libGLESv2/IndexDataManager.cpp: Added. (gl::IndexDataManager::IndexDataManager): (gl::IndexDataManager::~IndexDataManager): (gl::convertIndices): (gl::computeRange): (gl::IndexDataManager::prepareIndexData): (gl::IndexDataManager::indexSize): (gl::IndexDataManager::typeSize): (gl::IndexDataManager::getCountingIndices): (gl::IndexBuffer::IndexBuffer): (gl::IndexBuffer::~IndexBuffer): (gl::IndexBuffer::getBuffer): (gl::IndexBuffer::getSerial): (gl::IndexBuffer::issueSerial): (gl::IndexBuffer::unmap): (gl::StreamingIndexBuffer::StreamingIndexBuffer): (gl::StreamingIndexBuffer::~StreamingIndexBuffer): (gl::StreamingIndexBuffer::map): (gl::StreamingIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::StaticIndexBuffer): (gl::StaticIndexBuffer::~StaticIndexBuffer): (gl::StaticIndexBuffer::map): (gl::StaticIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::lookupType): (gl::StaticIndexBuffer::lookupRange): (gl::StaticIndexBuffer::addRange): * src/libGLESv2/IndexDataManager.h: Added. (gl::IndexBuffer::size): (gl::StaticIndexBuffer::IndexRange::operator<): * src/libGLESv2/Program.cpp: Added. (gl::AttributeBindings::AttributeBindings): (gl::AttributeBindings::~AttributeBindings): (gl::InfoLog::InfoLog): (gl::InfoLog::~InfoLog): (gl::InfoLog::getLength): (gl::InfoLog::getLog): (gl::InfoLog::appendSanitized): (gl::InfoLog::append): (gl::InfoLog::reset): (gl::Program::Program): (gl::Program::~Program): (gl::Program::attachShader): (gl::Program::detachShader): (gl::Program::getAttachedShadersCount): (gl::AttributeBindings::bindAttributeLocation): (gl::Program::bindAttributeLocation): (gl::Program::link): (gl::AttributeBindings::getAttributeBinding): (gl::Program::unlink): (gl::Program::isLinked): (gl::Program::getProgramBinary): (gl::Program::setProgramBinary): (gl::Program::release): (gl::Program::addRef): (gl::Program::getRefCount): (gl::Program::getProgramBinaryLength): (gl::Program::getInfoLogLength): (gl::Program::getInfoLog): (gl::Program::getAttachedShaders): (gl::Program::getActiveAttribute): (gl::Program::getActiveAttributeCount): (gl::Program::getActiveAttributeMaxLength): (gl::Program::getActiveUniform): (gl::Program::getActiveUniformCount): (gl::Program::getActiveUniformMaxLength): (gl::Program::flagForDeletion): (gl::Program::isFlaggedForDeletion): (gl::Program::validate): (gl::Program::isValidated): * src/libGLESv2/Program.h: Added. * src/libGLESv2/ProgramBinary.cpp: Added. (gl::str): (gl::Uniform::Uniform): (gl::Uniform::~Uniform): (gl::Uniform::isArray): (gl::UniformLocation::UniformLocation): (gl::ProgramBinary::ProgramBinary): (gl::ProgramBinary::~ProgramBinary): (gl::ProgramBinary::getSerial): (gl::ProgramBinary::issueSerial): (gl::ProgramBinary::getPixelShader): (gl::ProgramBinary::getVertexShader): (gl::ProgramBinary::getAttributeLocation): (gl::ProgramBinary::getSemanticIndex): (gl::ProgramBinary::getUsedSamplerRange): (gl::ProgramBinary::usesPointSize): (gl::ProgramBinary::getSamplerMapping): (gl::ProgramBinary::getSamplerTextureType): (gl::ProgramBinary::getUniformLocation): (gl::ProgramBinary::setUniform1fv): (gl::ProgramBinary::setUniform2fv): (gl::ProgramBinary::setUniform3fv): (gl::ProgramBinary::setUniform4fv): (gl::transposeMatrix): (gl::ProgramBinary::setUniformMatrix2fv): (gl::ProgramBinary::setUniformMatrix3fv): (gl::ProgramBinary::setUniformMatrix4fv): (gl::ProgramBinary::setUniform1iv): (gl::ProgramBinary::setUniform2iv): (gl::ProgramBinary::setUniform3iv): (gl::ProgramBinary::setUniform4iv): (gl::ProgramBinary::getUniformfv): (gl::ProgramBinary::getUniformiv): (gl::ProgramBinary::dirtyAllUniforms): (gl::ProgramBinary::applyUniforms): (gl::ProgramBinary::compileToBinary): (gl::ProgramBinary::packVaryings): (gl::ProgramBinary::linkVaryings): (gl::ProgramBinary::load): (gl::ProgramBinary::save): (gl::ProgramBinary::getLength): (gl::ProgramBinary::link): (gl::ProgramBinary::linkAttributes): (gl::ProgramBinary::linkUniforms): (gl::ProgramBinary::defineUniform): (gl::ProgramBinary::createUniform): (gl::ProgramBinary::decorateAttribute): (gl::ProgramBinary::undecorateUniform): (gl::ProgramBinary::applyUniformnbv): (gl::ProgramBinary::applyUniformnfv): (gl::ProgramBinary::applyUniform1iv): (gl::ProgramBinary::applyUniform2iv): (gl::ProgramBinary::applyUniform3iv): (gl::ProgramBinary::applyUniform4iv): (gl::ProgramBinary::applyUniformniv): (gl::ProgramBinary::isValidated): (gl::ProgramBinary::getActiveAttribute): (gl::ProgramBinary::getActiveAttributeCount): (gl::ProgramBinary::getActiveAttributeMaxLength): (gl::ProgramBinary::getActiveUniform): (gl::ProgramBinary::getActiveUniformCount): (gl::ProgramBinary::getActiveUniformMaxLength): (gl::ProgramBinary::validate): (gl::ProgramBinary::validateSamplers): (gl::ProgramBinary::getDxDepthRangeLocation): (gl::ProgramBinary::getDxDepthLocation): (gl::ProgramBinary::getDxCoordLocation): (gl::ProgramBinary::getDxHalfPixelSizeLocation): (gl::ProgramBinary::getDxFrontCCWLocation): (gl::ProgramBinary::getDxPointsOrLinesLocation): (gl::ProgramBinary::Sampler::Sampler): * src/libGLESv2/ProgramBinary.h: Added. (gl::Uniform::RegisterInfo::RegisterInfo): (gl::Uniform::RegisterInfo::set): (gl::UniformLocation::UniformLocation): * src/libGLESv2/Query.cpp: Added. (gl::Query::Query): (gl::Query::~Query): (gl::Query::begin): (gl::Query::end): (gl::Query::getResult): (gl::Query::isResultAvailable): (gl::Query::getType): (gl::Query::testQuery): * src/libGLESv2/Query.h: Added. * src/libGLESv2/README: Removed. * src/libGLESv2/Renderbuffer.cpp: Added. (gl::RenderbufferInterface::RenderbufferInterface): (gl::RenderbufferInterface::addProxyRef): (gl::RenderbufferInterface::releaseProxy): (gl::RenderbufferInterface::getRedSize): (gl::RenderbufferInterface::getGreenSize): (gl::RenderbufferInterface::getBlueSize): (gl::RenderbufferInterface::getAlphaSize): (gl::RenderbufferInterface::getDepthSize): (gl::RenderbufferInterface::getStencilSize): (gl::RenderbufferTexture2D::RenderbufferTexture2D): (gl::RenderbufferTexture2D::~RenderbufferTexture2D): (gl::RenderbufferTexture2D::addProxyRef): (gl::RenderbufferTexture2D::releaseProxy): (gl::RenderbufferTexture2D::getRenderTarget): (gl::RenderbufferTexture2D::getDepthStencil): (gl::RenderbufferTexture2D::getWidth): (gl::RenderbufferTexture2D::getHeight): (gl::RenderbufferTexture2D::getInternalFormat): (gl::RenderbufferTexture2D::getD3DFormat): (gl::RenderbufferTexture2D::getSamples): (gl::RenderbufferTexture2D::getSerial): (gl::RenderbufferTextureCubeMap::RenderbufferTextureCubeMap): (gl::RenderbufferTextureCubeMap::~RenderbufferTextureCubeMap): (gl::RenderbufferTextureCubeMap::addProxyRef): (gl::RenderbufferTextureCubeMap::releaseProxy): (gl::RenderbufferTextureCubeMap::getRenderTarget): (gl::RenderbufferTextureCubeMap::getDepthStencil): (gl::RenderbufferTextureCubeMap::getWidth): (gl::RenderbufferTextureCubeMap::getHeight): (gl::RenderbufferTextureCubeMap::getInternalFormat): (gl::RenderbufferTextureCubeMap::getD3DFormat): (gl::RenderbufferTextureCubeMap::getSamples): (gl::RenderbufferTextureCubeMap::getSerial): (gl::Renderbuffer::Renderbuffer): (gl::Renderbuffer::~Renderbuffer): (gl::Renderbuffer::addRef): (gl::Renderbuffer::release): (gl::Renderbuffer::getRenderTarget): (gl::Renderbuffer::getDepthStencil): (gl::Renderbuffer::getWidth): (gl::Renderbuffer::getHeight): (gl::Renderbuffer::getInternalFormat): (gl::Renderbuffer::getD3DFormat): (gl::Renderbuffer::getRedSize): (gl::Renderbuffer::getGreenSize): (gl::Renderbuffer::getBlueSize): (gl::Renderbuffer::getAlphaSize): (gl::Renderbuffer::getDepthSize): (gl::Renderbuffer::getStencilSize): (gl::Renderbuffer::getSamples): (gl::Renderbuffer::getSerial): (gl::Renderbuffer::setStorage): (gl::RenderbufferStorage::RenderbufferStorage): (gl::RenderbufferStorage::~RenderbufferStorage): (gl::RenderbufferStorage::getRenderTarget): (gl::RenderbufferStorage::getDepthStencil): (gl::RenderbufferStorage::getWidth): (gl::RenderbufferStorage::getHeight): (gl::RenderbufferStorage::getInternalFormat): (gl::RenderbufferStorage::getD3DFormat): (gl::RenderbufferStorage::getSamples): (gl::RenderbufferStorage::getSerial): (gl::RenderbufferStorage::issueSerial): (gl::RenderbufferStorage::issueCubeSerials): (gl::Colorbuffer::Colorbuffer): (gl::Colorbuffer::~Colorbuffer): (gl::Colorbuffer::getRenderTarget): (gl::DepthStencilbuffer::DepthStencilbuffer): (gl::DepthStencilbuffer::~DepthStencilbuffer): (gl::DepthStencilbuffer::getDepthStencil): (gl::Depthbuffer::Depthbuffer): (gl::Depthbuffer::~Depthbuffer): (gl::Stencilbuffer::Stencilbuffer): (gl::Stencilbuffer::~Stencilbuffer): * src/libGLESv2/Renderbuffer.h: Added. (gl::RenderbufferInterface::~RenderbufferInterface): * src/libGLESv2/ResourceManager.cpp: Added. (gl::ResourceManager::ResourceManager): (gl::ResourceManager::~ResourceManager): (gl::ResourceManager::addRef): (gl::ResourceManager::release): (gl::ResourceManager::createBuffer): (gl::ResourceManager::createShader): (gl::ResourceManager::createProgram): (gl::ResourceManager::createTexture): (gl::ResourceManager::createRenderbuffer): (gl::ResourceManager::deleteBuffer): (gl::ResourceManager::deleteShader): (gl::ResourceManager::deleteProgram): (gl::ResourceManager::deleteTexture): (gl::ResourceManager::deleteRenderbuffer): (gl::ResourceManager::getBuffer): (gl::ResourceManager::getShader): (gl::ResourceManager::getTexture): (gl::ResourceManager::getProgram): (gl::ResourceManager::getRenderbuffer): (gl::ResourceManager::setRenderbuffer): (gl::ResourceManager::checkBufferAllocation): (gl::ResourceManager::checkTextureAllocation): (gl::ResourceManager::checkRenderbufferAllocation): * src/libGLESv2/ResourceManager.h: Added. * src/libGLESv2/Shader.cpp: Added. (gl::Shader::Shader): (gl::Shader::~Shader): (gl::Shader::getHandle): (gl::Shader::setSource): (gl::Shader::getInfoLogLength): (gl::Shader::getInfoLog): (gl::Shader::getSourceLength): (gl::Shader::getTranslatedSourceLength): (gl::Shader::getSourceImpl): (gl::Shader::getSource): (gl::Shader::getTranslatedSource): (gl::Shader::isCompiled): (gl::Shader::getHLSL): (gl::Shader::addRef): (gl::Shader::release): (gl::Shader::getRefCount): (gl::Shader::isFlaggedForDeletion): (gl::Shader::flagForDeletion): (gl::Shader::initializeCompiler): (gl::Shader::releaseCompiler): (gl::Shader::parseVaryings): (gl::Shader::uncompile): (gl::Shader::compileToHLSL): (gl::Shader::parseType): (gl::Shader::compareVarying): (gl::VertexShader::VertexShader): (gl::VertexShader::~VertexShader): (gl::VertexShader::getType): (gl::VertexShader::uncompile): (gl::VertexShader::compile): (gl::VertexShader::getSemanticIndex): (gl::VertexShader::parseAttributes): (gl::FragmentShader::FragmentShader): (gl::FragmentShader::~FragmentShader): (gl::FragmentShader::getType): (gl::FragmentShader::compile): * src/libGLESv2/Shader.h: Added. (gl::Varying::Varying): (gl::Attribute::Attribute): * src/libGLESv2/Texture.cpp: Added. (gl::ConvertTextureInternalFormat): (gl::IsTextureFormatRenderable): (gl::GetTextureUsage): (gl::MakeValidSize): (gl::CopyLockableSurfaces): (gl::Image::Image): (gl::Image::~Image): (gl::Image::redefine): (gl::Image::createSurface): (gl::Image::lock): (gl::Image::unlock): (gl::Image::isRenderableFormat): (gl::Image::getD3DFormat): (gl::Image::getSurface): (gl::Image::setManagedSurface): (gl::Image::updateSurface): (gl::Image::loadData): (gl::Image::loadAlphaData): (gl::Image::loadAlphaFloatData): (gl::Image::loadAlphaHalfFloatData): (gl::Image::loadLuminanceData): (gl::Image::loadLuminanceFloatData): (gl::Image::loadLuminanceHalfFloatData): (gl::Image::loadLuminanceAlphaData): (gl::Image::loadLuminanceAlphaFloatData): (gl::Image::loadLuminanceAlphaHalfFloatData): (gl::Image::loadRGBUByteData): (gl::Image::loadRGB565Data): (gl::Image::loadRGBFloatData): (gl::Image::loadRGBHalfFloatData): (gl::Image::loadRGBAUByteData): (gl::Image::loadRGBA4444Data): (gl::Image::loadRGBA5551Data): (gl::Image::loadRGBAFloatData): (gl::Image::loadRGBAHalfFloatData): (gl::Image::loadBGRAData): (gl::Image::loadCompressedData): (gl::Image::copy): (gl::TextureStorage::TextureStorage): (gl::TextureStorage::~TextureStorage): (gl::TextureStorage::isRenderTarget): (gl::TextureStorage::isManaged): (gl::TextureStorage::getPool): (gl::TextureStorage::getUsage): (gl::TextureStorage::getTextureSerial): (gl::TextureStorage::issueTextureSerial): (gl::TextureStorage::getLodOffset): (gl::Texture::Texture): (gl::Texture::~Texture): (gl::Texture::setMinFilter): (gl::Texture::setMagFilter): (gl::Texture::setWrapS): (gl::Texture::setWrapT): (gl::Texture::setMaxAnisotropy): (gl::Texture::setUsage): (gl::Texture::getMinFilter): (gl::Texture::getMagFilter): (gl::Texture::getWrapS): (gl::Texture::getWrapT): (gl::Texture::getMaxAnisotropy): (gl::Texture::getUsage): (gl::Texture::isMipmapFiltered): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::Texture::getTexture): (gl::Texture::hasDirtyParameters): (gl::Texture::hasDirtyImages): (gl::Texture::resetDirty): (gl::Texture::getTextureSerial): (gl::Texture::getRenderTargetSerial): (gl::Texture::isImmutable): (gl::Texture::getLodOffset): (gl::Texture::creationLevels): (gl::Texture::levelCount): (gl::Texture::getBlitter): (gl::Texture::copyToRenderTarget): (gl::TextureStorage2D::TextureStorage2D): (gl::TextureStorage2D::~TextureStorage2D): (gl::TextureStorage2D::getSurfaceLevel): (gl::TextureStorage2D::getBaseTexture): (gl::TextureStorage2D::getRenderTargetSerial): (gl::Texture2D::Texture2D): (gl::Texture2D::~Texture2D): (gl::Texture2D::addProxyRef): (gl::Texture2D::releaseProxy): (gl::Texture2D::getTarget): (gl::Texture2D::getWidth): (gl::Texture2D::getHeight): (gl::Texture2D::getInternalFormat): (gl::Texture2D::getD3DFormat): (gl::Texture2D::redefineImage): (gl::Texture2D::setImage): (gl::Texture2D::bindTexImage): (gl::Texture2D::releaseTexImage): (gl::Texture2D::setCompressedImage): (gl::Texture2D::commitRect): (gl::Texture2D::subImage): (gl::Texture2D::subImageCompressed): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::storage): (gl::Texture2D::isSamplerComplete): (gl::Texture2D::isMipmapComplete): (gl::Texture2D::isCompressed): (gl::Texture2D::isDepth): (gl::Texture2D::getBaseTexture): (gl::Texture2D::createTexture): (gl::Texture2D::updateTexture): (gl::Texture2D::convertToRenderTarget): (gl::Texture2D::generateMipmaps): (gl::Texture2D::getRenderbuffer): (gl::Texture2D::getRenderTarget): (gl::Texture2D::getDepthStencil): (gl::Texture2D::getStorage): (gl::TextureStorageCubeMap::TextureStorageCubeMap): (gl::TextureStorageCubeMap::~TextureStorageCubeMap): (gl::TextureStorageCubeMap::getCubeMapSurface): (gl::TextureStorageCubeMap::getBaseTexture): (gl::TextureStorageCubeMap::getRenderTargetSerial): (gl::TextureCubeMap::TextureCubeMap): (gl::TextureCubeMap::~TextureCubeMap): (gl::TextureCubeMap::addProxyRef): (gl::TextureCubeMap::releaseProxy): (gl::TextureCubeMap::getTarget): (gl::TextureCubeMap::getWidth): (gl::TextureCubeMap::getHeight): (gl::TextureCubeMap::getInternalFormat): (gl::TextureCubeMap::getD3DFormat): (gl::TextureCubeMap::setImagePosX): (gl::TextureCubeMap::setImageNegX): (gl::TextureCubeMap::setImagePosY): (gl::TextureCubeMap::setImageNegY): (gl::TextureCubeMap::setImagePosZ): (gl::TextureCubeMap::setImageNegZ): (gl::TextureCubeMap::setCompressedImage): (gl::TextureCubeMap::commitRect): (gl::TextureCubeMap::subImage): (gl::TextureCubeMap::subImageCompressed): (gl::TextureCubeMap::isSamplerComplete): (gl::TextureCubeMap::isCubeComplete): (gl::TextureCubeMap::isMipmapCubeComplete): (gl::TextureCubeMap::isCompressed): (gl::TextureCubeMap::getBaseTexture): (gl::TextureCubeMap::createTexture): (gl::TextureCubeMap::updateTexture): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::setImage): (gl::TextureCubeMap::faceIndex): (gl::TextureCubeMap::redefineImage): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::storage): (gl::TextureCubeMap::generateMipmaps): (gl::TextureCubeMap::getRenderbuffer): (gl::TextureCubeMap::getRenderTarget): (gl::TextureCubeMap::getStorage): * src/libGLESv2/Texture.h: Added. (gl::Image::markDirty): (gl::Image::markClean): (gl::Image::getWidth): (gl::Image::getHeight): (gl::Image::getInternalFormat): (gl::Image::isDirty): * src/libGLESv2/TextureSSE2.cpp: Added. (gl::Image::loadRGBAUByteDataSSE2): (gl::Image::loadAlphaDataSSE2): * src/libGLESv2/VertexDataManager.cpp: Added. (gl::elementsInBuffer): (gl::VertexDataManager::VertexDataManager): (gl::VertexDataManager::~VertexDataManager): (gl::VertexDataManager::writeAttributeData): (gl::VertexDataManager::prepareVertexData): (gl::VertexDataManager::spaceRequired): (gl::VertexDataManager::checkVertexCaps): (gl::VertexDataManager::typeIndex): (gl::VertexBuffer::VertexBuffer): (gl::VertexBuffer::~VertexBuffer): (gl::VertexBuffer::unmap): (gl::VertexBuffer::getBuffer): (gl::VertexBuffer::getSerial): (gl::VertexBuffer::issueSerial): (gl::ArrayVertexBuffer::ArrayVertexBuffer): (gl::ArrayVertexBuffer::~ArrayVertexBuffer): (gl::ArrayVertexBuffer::addRequiredSpace): (gl::StreamingVertexBuffer::StreamingVertexBuffer): (gl::StreamingVertexBuffer::~StreamingVertexBuffer): (gl::StreamingVertexBuffer::map): (gl::StreamingVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::StaticVertexBuffer): (gl::StaticVertexBuffer::~StaticVertexBuffer): (gl::StaticVertexBuffer::map): (gl::StaticVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::lookupAttribute): (gl::VertexDataManager::formatConverter): * src/libGLESv2/VertexDataManager.h: Added. (gl::ArrayVertexBuffer::size): (gl::VertexDataManager::dirtyCurrentValue): * src/libGLESv2/libGLESv2.cpp: Added. (validImageSize): (checkTextureFormatType): (validateSubImageParams2D): (validateSubImageParamsCube): (validReadFormatType): * src/libGLESv2/libGLESv2.def: Added. * src/libGLESv2/libGLESv2.rc: Added. * src/libGLESv2/libGLESv2.vcxproj: Added. * src/libGLESv2/libGLESv2.vcxproj.filters: Added. * src/libGLESv2/main.cpp: Added. (DllMain): (gl::makeCurrent): (gl::getContext): (gl::getNonLostContext): (gl::getDisplay): (gl::getDevice): (gl::checkDeviceLost): (error): * src/libGLESv2/main.h: Added. (error): * src/libGLESv2/mathutil.h: Added. (gl::Vector4::Vector4): (gl::isPow2): (gl::log2): (gl::ceilPow2): (gl::clamp): (gl::clamp01): (gl::unorm): (gl::supportsSSE2): (gl::float32ToFloat16): * src/libGLESv2/resource.h: Added. * src/libGLESv2/shaders: Added. * src/libGLESv2/shaders/Blit.ps: Added. * src/libGLESv2/shaders/Blit.vs: Added. * src/libGLESv2/shaders/componentmaskps.h: Added. * src/libGLESv2/shaders/flipyvs.h: Added. * src/libGLESv2/shaders/generate_shaders.bat: Added. * src/libGLESv2/shaders/luminanceps.h: Added. * src/libGLESv2/shaders/passthroughps.h: Added. * src/libGLESv2/shaders/standardvs.h: Added. * src/libGLESv2/utilities.cpp: Added. (gl::UniformExternalComponentCount): (gl::UniformInternalComponentCount): (gl::UniformComponentType): (gl::UniformComponentSize): (gl::UniformInternalSize): (gl::UniformExternalSize): (gl::VariableRowCount): (gl::VariableColumnCount): (gl::AllocateFirstFreeBits): (gl::ComputePitch): (gl::ComputeCompressedPitch): (gl::ComputeCompressedSize): (gl::IsCompressed): (gl::IsDepthTexture): (gl::IsStencilTexture): (gl::ComputePixelSize): (gl::IsCubemapTextureTarget): (gl::IsInternalTextureTarget): (gl::ConvertSizedInternalFormat): (gl::ExtractFormat): (gl::ExtractType): (gl::IsColorRenderable): (gl::IsDepthRenderable): (gl::IsStencilRenderable): (gl::IsFloat32Format): (gl::IsFloat16Format): (es2dx::ConvertComparison): (es2dx::ConvertColor): (es2dx::ConvertBlendFunc): (es2dx::ConvertBlendOp): (es2dx::ConvertStencilOp): (es2dx::ConvertTextureWrap): (es2dx::ConvertCullMode): (es2dx::ConvertCubeFace): (es2dx::ConvertColorMask): (es2dx::ConvertMagFilter): (es2dx::ConvertMinFilter): (es2dx::ConvertPrimitiveType): (es2dx::ConvertRenderbufferFormat): (es2dx::GetMultisampleTypeFromSamples): (dx2es::GetStencilSize): (dx2es::GetAlphaSize): (dx2es::GetRedSize): (dx2es::GetGreenSize): (dx2es::GetBlueSize): (dx2es::GetDepthSize): (dx2es::GetSamplesFromMultisampleType): (dx2es::IsFormatChannelEquivalent): (dx2es::ConvertReadBufferFormat): (dx2es::ConvertBackBufferFormat): (dx2es::ConvertDepthStencilFormat): (dx::IsCompressedFormat): (dx::ComputeRowSize): (getTempPath): (writeFile): * src/libGLESv2/utilities.h: Added. (isDeviceLostError): * src/libGLESv2/vertexconversion.h: Added. (gl::Identity::convert): (gl::Cast::convert): (gl::Normalize::convert): (gl::FixedToFloat::convert): (gl::SimpleDefaultValues::zero): (gl::SimpleDefaultValues::one): (gl::NormalizedDefaultValues::zero): (gl::NormalizedDefaultValues::one): (gl::VertexDataConverter::convertArray): (gl::VertexDataConverter::pointerAddBytes): (gl::VertexDataConverter::copyComponent): 2013-07-17 Alex Christensen Made a repeatable process for updating ANGLE that does not include manually editing any files. https://bugs.webkit.org/show_bug.cgi?id=118815 Reviewed by Dean Jackson. * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: * src/compiler/glslang_tab.cpp: * src/compiler/glslang_tab.h: Put YYLTYPE definition in %union instead of prologue and ran Bison. 2013-07-16 Alex Christensen Update ANGLE from r1987 to r2426 while keeping these changes: Keeping #if defined(_MSC_VER) around #pragma warning(disable: 4718) in DependencyGraph.cpp. Keeping include khrplatform.h instead of KHR/khrplatform.h in ShaderLang.h. Added static_casts in Intermediate.cpp to fix compiling on Mac. Changed enum bit fields to just enums for GCC in Types.h to fix compiling for GTK. Ran Bison on Mac after removing the unsupported %code tag (See diff uploaded to bug for details). Added YYLTYPE definition to glslang_tab.h which would have been put there by the unsupported %code tag. https://bugs.webkit.org/show_bug.cgi?id=118550 Reviewed by Dean Jackson. * ANGLE.plist: Updated revision of ANGLE to 2426. * ANGLE.xcodeproj/project.pbxproj: * GNUmakefile.am: * Target.pri: Renamed DetectRecursion to DetectCallDepth and added builtin_symbol_table. * include/GLSLANG/ShaderLang.h: * src/common/version.h: * src/compiler/BaseTypes.h: (getQualifierString): * src/compiler/Common.h: * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::Init): (TCompiler::compile): (TCompiler::detectCallDepth): (TCompiler::enforceTimingRestrictions): (TCompiler::limitExpressionComplexity): * src/compiler/ConstantUnion.h: (ConstantUnion::ConstantUnion): * src/compiler/DetectCallDepth.cpp: Added. (DetectCallDepth::FunctionNode::FunctionNode): (DetectCallDepth::FunctionNode::getName): (DetectCallDepth::FunctionNode::addCallee): (DetectCallDepth::FunctionNode::detectCallDepth): (DetectCallDepth::FunctionNode::reset): (DetectCallDepth::DetectCallDepth): (DetectCallDepth::~DetectCallDepth): (DetectCallDepth::visitAggregate): (DetectCallDepth::checkExceedsMaxDepth): (DetectCallDepth::resetFunctionNodes): (DetectCallDepth::detectCallDepthForFunction): (DetectCallDepth::detectCallDepth): (DetectCallDepth::findFunctionByName): * src/compiler/DetectCallDepth.h: Added. (DetectCallDepth::getInfoSink): * src/compiler/DetectRecursion.cpp: Removed. * src/compiler/DetectRecursion.h: Removed. * src/compiler/Diagnostics.cpp: (TDiagnostics::writeInfo): * src/compiler/ForLoopUnroll.cpp: (ForLoopUnroll::evaluateIntConstant): * src/compiler/InfoSink.cpp: (TInfoSinkBase::prefix): (TInfoSinkBase::location): (TInfoSinkBase::message): * src/compiler/InfoSink.h: * src/compiler/Initialize.cpp: (TBuiltIns::initialize): (IdentifyBuiltIns): (InitExtensionBehavior): * src/compiler/Intermediate.cpp: Updated and added static_casts to fix build errors on Mac. (TIntermediate::addSymbol): (TIntermediate::addBinaryMath): (TIntermediate::addAssign): (TIntermediate::addIndex): (TIntermediate::addUnaryMath): (TIntermediate::setAggregateOperator): (TIntermediate::addConversion): (TIntermediate::growAggregate): (TIntermediate::makeAggregate): (TIntermediate::addSelection): (TIntermediate::addComma): (TIntermediate::addConstantUnion): (TIntermediate::addSwizzle): (TIntermediate::addLoop): (TIntermediate::addBranch): (TIntermUnary::promote): (TIntermBinary::promote): (CompareStruct): (CompareStructure): (TIntermConstantUnion::fold): (TIntermediate::promoteConstantUnion): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::visitSymbol): * src/compiler/OutputGLSL.h: * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::writeVariableType): (TOutputGLSLBase::writeConstantUnion): (TOutputGLSLBase::visitBinary): (TOutputGLSLBase::visitAggregate): (TOutputGLSLBase::getTypeName): (TOutputGLSLBase::hashFunctionName): (TOutputGLSLBase::structDeclared): (TOutputGLSLBase::declareStruct): * src/compiler/OutputGLSLBase.h: * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitSymbol): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::typeString): (sh::OutputHLSL::initializer): (sh::OutputHLSL::addConstructor): (sh::OutputHLSL::writeConstantUnion): (sh::OutputHLSL::decorateField): * src/compiler/OutputHLSL.h: * src/compiler/ParseHelper.cpp: (TParseContext::parseVectorFields): (TParseContext::parseMatrixFields): (TParseContext::error): (TParseContext::warning): (TParseContext::assignError): (TParseContext::unaryOpError): (TParseContext::binaryOpError): (TParseContext::precisionErrorCheck): (TParseContext::lValueErrorCheck): (TParseContext::globalErrorCheck): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::voidErrorCheck): (TParseContext::boolErrorCheck): (TParseContext::samplerErrorCheck): (TParseContext::structQualifierErrorCheck): (TParseContext::parameterSamplerErrorCheck): (TParseContext::containsSampler): (TParseContext::arraySizeErrorCheck): (TParseContext::arrayQualifierErrorCheck): (TParseContext::arrayTypeErrorCheck): (TParseContext::arrayErrorCheck): (TParseContext::nonInitConstErrorCheck): (TParseContext::nonInitErrorCheck): (TParseContext::paramErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::findFunction): (TParseContext::isVariableBuiltIn): (TParseContext::executeInitializer): (TParseContext::addConstructor): (TParseContext::constructBuiltIn): (TParseContext::constructStruct): (TParseContext::addConstVectorNode): (TParseContext::addConstMatrixNode): (TParseContext::addConstArrayNode): (TParseContext::addConstStruct): (TParseContext::enterStructDeclaration): (TParseContext::structNestingErrorCheck): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): (TParseContext::pragma): * src/compiler/PoolAlloc.cpp: (TPoolAllocator::allocate): * src/compiler/ShHandle.h: * src/compiler/ShaderLang.cpp: (ShInitBuiltInResources): * src/compiler/SymbolTable.cpp: (TType::TType): (TType::buildMangledName): (TType::getObjectSize): (TStructure::containsArrays): (TStructure::buildMangledName): (TStructure::calculateObjectSize): (TStructure::calculateDeepestNesting): (TSymbolTableLevel::relateToExtension): * src/compiler/SymbolTable.h: (TSymbol::relateToExtension): (TSymbol::getExtension): (TVariable::TVariable): (TVariable::setQualifier): (TVariable::shareConstPointer): * src/compiler/Types.h: Updated and changed enum bit fields to enums to fix compiling with GCC. (TField::TField): (TField::type): (TField::name): (NewPoolTFieldList): (TStructure::TStructure): (TStructure::name): (TStructure::fields): (TStructure::mangledName): (TStructure::objectSize): (TStructure::deepestNesting): (TType::TType): (TType::clearArrayness): (TType::getStruct): (TType::setStruct): (TType::getMangledName): (TType::getDeepestStructNesting): (TType::isStructureContainingArrays): (TPublicType::setBasic): * src/compiler/VariableInfo.cpp: (getUserDefinedVariableInfo): * src/compiler/builtin_symbol_table.cpp: Added. (builtin1): (builtin2): (builtin3): (InsertBuiltInFunctionsCommon): (InsertBuiltInFunctionsVertex): * src/compiler/builtin_symbol_table.h: Added. * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (yy_get_previous_state): (yy_try_NUL_trans): (yyget_lloc): (yyset_lloc): (string_input): (check_type): (reserved_word): (glslang_scan): * src/compiler/glslang_tab.cpp: (yysyntax_error): (yyerror): (glslang_parse): * src/compiler/glslang_tab.h: Readded YYLTYPE definition after Bison removed it. * src/compiler/intermOut.cpp: (TOutputTraverser::visitUnary): (TOutputTraverser::visitAggregate): (TOutputTraverser::visitConstantUnion): * src/compiler/intermediate.h: (TIntermNode::TIntermNode): (TIntermNode::~TIntermNode): (TIntermNode::getLine): (TIntermNode::setLine): (TIntermNode::getAsLoopNode): (TIntermConstantUnion::getIConst): (TIntermConstantUnion::getFConst): (TIntermConstantUnion::getBConst): (TIntermAggregate::TIntermAggregate): (TIntermTraverser::TIntermTraverser): (TIntermTraverser::getMaxDepth): (TIntermTraverser::incrementDepth): * src/compiler/localintermediate.h: * src/compiler/parseConst.cpp: (TConstTraverser::visitSymbol): (TConstTraverser::visitBinary): (TConstTraverser::visitUnary): (TConstTraverser::visitAggregate): (TConstTraverser::visitSelection): (TConstTraverser::visitConstantUnion): (TConstTraverser::visitLoop): (TConstTraverser::visitBranch): (TIntermediate::parseConstTree): * src/compiler/preprocessor/ExpressionParser.cpp: * src/compiler/timing/RestrictVertexShaderTiming.cpp: (RestrictVertexShaderTiming::visitSymbol): Updated ANGLE to r2426 and ran Bison. 2013-06-17 Darin Adler Sort all the Xcode project files https://bugs.webkit.org/show_bug.cgi?id=117696 Reviewed by Anders Carlsson. * ANGLE.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script. 2013-04-18 Krzysztof Wolanski Add checking whether the compiler allows to use #pragma directive. https://bugs.webkit.org/show_bug.cgi?id=114740 Reviewed by Andreas Kling. Some compilers may complain that #pragma warning is an undefined macro. * src/compiler/depgraph/DependencyGraph.cpp: 2013-04-11 Andras Becsi [Qt][Mac] Linking fails with Qt 5.1 https://bugs.webkit.org/show_bug.cgi?id=114435 Reviewed by Tor Arne Vestbø. Qt 5.1 enables C++11 by default when using clang on Mac and links against the libc++ standard library. As a result building the QtWebKit shared library fails when linking agains the ANGLE intermediate static library because libc++ misses some symbols needed by ANGLE. Disable C++11 for the ANGLE intermediate library to fix the build. * ANGLE.pri: 2013-04-10 Benjamin Poulain Mass remove all the empty directories Rubberstamped by Ryosuke Niwa. * src/libGLESv2/geometry: Removed. 2013-04-08 Ryosuke Niwa Remove ANGLE.gyp https://bugs.webkit.org/show_bug.cgi?id=114245 Unreviewed. Just removing an empty directory. * ANGLE.gyp: Removed. 2013-04-04 Martin Robinson [GTK] Remove the gyp build https://bugs.webkit.org/show_bug.cgi?id=113942 Reviewed by Gustavo Noronha Silva. * ANGLE.gyp/ANGLE.gyp: Removed. * ANGLE.gypi: Removed. 2013-03-20 Zan Dobersek [GTK] Build ANGLE sources into a separate library from libWebCore.la https://bugs.webkit.org/show_bug.cgi?id=112778 Reviewed by Martin Robinson. * GNUmakefile.am: Added, sets up the libANGLE.la library. 2013-03-05 Kenneth Russell Upgrade ANGLE to r1987 https://bugs.webkit.org/show_bug.cgi?id=111381 Reviewed by Dean Jackson. * include/GLSLANG/ShaderLang.h: * src/common/version.h: * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::Init): (TCompiler::compile): * src/compiler/ParseHelper.h: (TParseContext): * src/compiler/ShHandle.h: (TCompiler): * src/compiler/ShaderLang.cpp: (ShInitBuiltInResources): * src/compiler/UnfoldShortCircuit.cpp: (sh::UnfoldShortCircuit::visitSelection): * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (glslang_scan): * src/compiler/glslang_tab.cpp: Updated ANGLE to r1987. 2013-03-01 Martin Robinson [GTK] Add ANGLE to the GTK+ gyp build https://bugs.webkit.org/show_bug.cgi?id=111128 Reviewed by Dirk Pranke. Add files that build an ANGLE static library for GTK+ using gyp. * ANGLE.gyp/ANGLE.gyp: Added. * ANGLE.gypi: Added. 2013-02-22 Kenneth Russell Mac OS build broken by new ExpressionParser.cpp https://bugs.webkit.org/show_bug.cgi?id=110629 Unreviewed build fix. Regenerated ExpressionParser with Bison 2.3. * src/compiler/preprocessor/ExpressionParser.cpp: 2013-02-21 Zhenyao Mo Roll ANGLE to r1833 https://bugs.webkit.org/show_bug.cgi?id=110513 Reviewed by Kenneth Russell. Upstream ANGLE r1833 includes webkit side local fixes 1) r139758 build fix for -Wshorten-64-to-32 2) r139665 build fix for uninitialized variables After this roll, WebKit side ANGLE is the same as upstream ANGLE r1833, except: 1) include/GLSLANG/ShaderLang.h, where "KHR" is removed from include path. With this roll, we have EXT_draw_buffers support. * ANGLE.xcodeproj/project.pbxproj: * Target.pri: * include/GLSLANG/ShaderLang.h: * src/common/debug.cpp: * src/common/system.h: Added. * src/common/version.h: * src/compiler/ArrayBoundsClamper.cpp: Removed. * src/compiler/ArrayBoundsClamper.h: Removed. * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::Init): (TCompiler::compile): (TCompiler::getArrayBoundsClamper): (TCompiler::getArrayIndexClampingStrategy): (TCompiler::getBuiltInFunctionEmulator): * src/compiler/DetectDiscontinuity.cpp: (sh::DetectLoopDiscontinuity::traverse): (sh::DetectLoopDiscontinuity::visitLoop): (sh): (sh::DetectLoopDiscontinuity::visitBranch): * src/compiler/DetectDiscontinuity.h: (DetectLoopDiscontinuity): * src/compiler/Initialize.cpp: (InitExtensionBehavior): * src/compiler/Intermediate.cpp: (TIntermConstantUnion::fold): (TIntermTraverser::hash): * src/compiler/MapLongVariableNames.cpp: (LongNameMap::Size): (MapLongVariableNames::mapGlobalLongName): * src/compiler/MapLongVariableNames.h: (LongNameMap): * src/compiler/OutputESSL.cpp: (TOutputESSL::TOutputESSL): * src/compiler/OutputESSL.h: (TOutputESSL): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::TOutputGLSL): * src/compiler/OutputGLSL.h: (TOutputGLSL): * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::TOutputGLSLBase): (TOutputGLSLBase::writeConstantUnion): (TOutputGLSLBase::visitBinary): * src/compiler/OutputGLSLBase.h: (TOutputGLSLBase): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::output): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::writeConstantUnion): * src/compiler/ParseHelper.cpp: (TParseContext::constructorErrorCheck): (PaParseStrings): * src/compiler/ParseHelper.h: * src/compiler/ShHandle.h: (TCompiler): * src/compiler/ShaderLang.cpp: (checkActiveUniformAndAttribMaxLengths): (checkMappedNameMaxLength): (getVariableInfo): (ShInitBuiltInResources): (ShCompile): (ShGetInfo): (ShGetActiveAttrib): (ShGetActiveUniform): (ShGetNameHashingEntry): * src/compiler/SymbolTable.h: (TFunction::getParamCount): (TFunction::getParam): (TSymbolTable::setDefaultPrecision): * src/compiler/TranslatorESSL.cpp: (TranslatorESSL::translate): * src/compiler/TranslatorGLSL.cpp: (TranslatorGLSL::translate): * src/compiler/ValidateLimitations.cpp: (ValidateLimitations::validateFunctionCall): * src/compiler/VariablePacker.cpp: (VariablePacker::GetNumRows): * src/compiler/glslang.h: * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (string_input): (glslang_scan): * src/compiler/glslang_tab.cpp: * src/compiler/preprocessor/ExpressionParser.cpp: * src/compiler/preprocessor/ExpressionParser.y: * src/compiler/preprocessor/Input.cpp: (pp::Input::Input): (pp::Input::read): * src/compiler/preprocessor/Input.h: (Input): (pp::Input::count): (pp::Input::string): (pp::Input::length): (Location): * src/compiler/preprocessor/Preprocessor.cpp: (pp::Preprocessor::init): * src/compiler/preprocessor/Preprocessor.h: (Preprocessor): * src/compiler/preprocessor/Tokenizer.cpp: (pp::Tokenizer::init): * src/compiler/preprocessor/Tokenizer.h: (Tokenizer): * src/compiler/preprocessor/Tokenizer.l: * src/third_party: Added. * src/third_party/compiler: Added. * src/third_party/compiler/ArrayBoundsClamper.cpp: Added. (ArrayBoundsClamper::ArrayBoundsClamper): (ArrayBoundsClamper::SetClampingStrategy): (ArrayBoundsClamper::MarkIndirectArrayBoundsForClamping): (ArrayBoundsClamper::OutputClampingFunctionDefinition): * src/third_party/compiler/ArrayBoundsClamper.h: Added. (ArrayBoundsClamper): (ArrayBoundsClamper::Cleanup): (ArrayBoundsClamper::GetArrayBoundsClampDefinitionNeeded): (ArrayBoundsClamper::SetArrayBoundsClampDefinitionNeeded): * src/third_party/compiler/LICENSE: Added. * src/third_party/compiler/README.angle: Added. 2013-02-04 David Kilzer Sort ANGLE Xcode project file. * ANGLE.xcodeproj/project.pbxproj: 2013-01-30 David Kilzer Remove useless comment from Base.xcconfig Rubber-stamped by Mark Rowe. * Configurations/Base.xcconfig: Remove comment. 2013-01-16 Allan Sandfeld Jensen Doesn't build with GCC 4.7+ https://bugs.webkit.org/show_bug.cgi?id=106999 Reviewed by Csaba Osztrogonác. Correct __GNU_C_MINOR__ macro to __GNUC_MINOR__. * src/compiler/preprocessor/ExpressionParser.y: 2013-01-15 David Kilzer BUILD FIX: Add SUPPORTED_PLATFORMS to Base.xcconfig * Configurations/Base.xcconfig: Add SUPPORTED_PLATFORMS so that Xcode knows we can build this project for all three platforms. Previously the Mac OS X SDKs were missing in the scheme picker. 2013-01-15 David Kilzer Upstream iOS changes for ANGLE project Reviewed by Joseph Pecoraro. * ANGLE.xcodeproj/project.pbxproj: - Use $(INSTALL_PATH_PREFIX) with CopyFiles build phase paths. - Add iOS.xcconfig to project. * Configurations/ANGLE.xcconfig: - Use INSTALL_PATH_ACTUAL instead of INSTALL_PATH. (See below.) - Use $(INSTALL_PATH_PREFIX) with PUBLIC_HEADERS_FOLDER_PATH. * Configurations/Base.xcconfig: - Include iOS.xcconfig. - Add per-platform values for GCC_ENABLE_OBJC_GC and GCC_MODEL_TUNING. - Define INSTALL_PATH when building for macosx SDK. * Configurations/iOS.xcconfig: Add. Note that missing include files are simply ignored without an error by Xcode. 2013-01-15 David Kilzer ANGLE should build with -Wshorten-64-to-32 Reviewed by Kenneth Russell. Most changes below are simply to document issues with #pragma statements per request by upstream. The change to osinclude.h is the only bug fix, which defines OS_TLSIndex in terms of pthread_key_t instead of unsigned int since pthread_key_t is a 64-bit value on 64-bit Mac OS X. * Configurations/Base.xcconfig: Enable -Wshorten-64-to-32 by setting GCC_WARN_64_TO_32_BIT_CONVERSION to YES. * src/compiler/Intermediate.cpp: (TIntermTraverser::hash): Add #pragmas for clang to ignore -Wshorten-64-to-32 warning. * src/compiler/MapLongVariableNames.cpp: (LongNameMap::Size): Ditto. * src/compiler/ShaderLang.cpp: (getVariableInfo): Ditto. (ShGetInfo): Ditto. * src/compiler/ValidateLimitations.cpp: (ValidateLimitations::validateFunctionCall): Ditto. * src/compiler/glslang.l: Ditto. * src/compiler/glslang_lex.cpp: Ditto. * src/compiler/osinclude.h: Change type of OS_TLSIndex to pthread_key_t. Define OS_INVALID_TLS_INDEX by using static_cast(-1). * src/compiler/preprocessor/Input.cpp: (pp::Input::Input): Add #pragmas for clang to ignore -Wshorten-64-to-32 warning. * src/compiler/preprocessor/Tokenizer.cpp: Ditto. * src/compiler/preprocessor/Tokenizer.l: Ditto. 2013-01-14 David Kilzer Remove nonexistent file in ANGLE Xcode project * ANGLE.xcodeproj/project.pbxproj: Remove references to ossource_nspr.cpp which was removed in r139665. 2013-01-14 Dean Jackson Unreviewed QT build fix. * ANGLE.pri: 2013-01-14 Dean Jackson [ANGLE] Update ANGLE in WebKit https://bugs.webkit.org/show_bug.cgi?id=106274 Unreviewed attempted build fix. Remove the copy files stage. Make khrplatform.h a public header. * ANGLE.xcodeproj/project.pbxproj: * include/GLSLANG/ShaderLang.h: 2013-01-14 Max Vujovic [ANGLE] Update ANGLE in WebKit https://bugs.webkit.org/show_bug.cgi?id=106274 Reviewed by Dean Jackson. Update ANGLE to r1641. ANGLE parsers were generated with Bison 2.3. Additionally, perform the following changes to WebKit's ANGLE build system. Note that these changes only apply to WebKit's copy of ANGLE, and do not need to be upstreamed to ANGLE. (a) Remove all files in the libEGL and libGLESv2 directories because nobody is using them. Add a README in each directory to explain why their contents are not copied over from ANGLE. This simplifies updating ANGLE in the future. (b) Remove the build_angle.xcodeproj file that no-one is using. It appears it was copied over from a gyp build of ANGLE. The Mac build uses ANGLE.xcodeproj. (c) Remove duplicate file entries in ANGLE.xcodeproj. Change its Xcode group structure to match ANGLE's directory structure. (d) Add a Copy Files task to ANGLE.xcodeproj to put the khrplatform.h header in the right place so ShaderLang.h can find it. ShaderLang.h is copied to /usr/local/include/ANGLE/ShaderLang.h during the Copy Headers task, and it includes "KHR/khrplatform.h". Thus, we need to copy khrplatform.h to /usr/local/include/ANGLE/KHR/khrplatform.h. Additionally, make one build fix in ANGLE source that should be upstreamed to ANGLE: (1) Before this patch in ExpressionParser.y, we toggled the "-Wpragmas" flag so compilers could ignore the pragmas that they didn't understand instead of generating an error. However, clang does not understand "-Wpragmas" itself. Instead, tt understands "-Wunknown-pragmas". Now, instead of trying to temporarily ignore pragmas, we apply the right flags to the right compiler versions. The new code in ExpressionParser.y looks like: """ // Turn off uninitialized variable warnings triggered by the auto-generated pplval variable. // On gcc 4.7+, The flag is called "-Wmaybe-uninitialized". // On clang and gcc < 4.7, the flag is called "-Wuninitialized". #if !defined(__clang__) && ((__GNUC__ == 4 && __GNU_C_MINOR__ >= 7) || __GNUC__ >= 5) #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" #else #pragma GCC diagnostic ignored "-Wuninitialized" #endif """ * ANGLE.plist: * ANGLE.pri: * ANGLE.xcodeproj/project.pbxproj: * DerivedSources.pri: * Target.pri: * include/GLSLANG/ShaderLang.h: * src/build_angle.xcodeproj/project.pbxproj: Removed. * src/common/angleutils.h: * src/common/debug.cpp: (gl::ScopedPerfEventHelper::ScopedPerfEventHelper): * src/common/debug.h: * src/common/version.h: * src/compiler/Compiler.cpp: (TCompiler::Init): (TCompiler::compile): (TCompiler::clearResults): (TCompiler::collectAttribsUniforms): (TCompiler::enforcePackingRestrictions): * src/compiler/Diagnostics.cpp: (TDiagnostics::TDiagnostics): (TDiagnostics::writeInfo): (TDiagnostics::print): * src/compiler/Diagnostics.h: (TDiagnostics::numErrors): (TDiagnostics::numWarnings): (TDiagnostics): * src/compiler/DirectiveHandler.h: * src/compiler/HashNames.h: Added. * src/compiler/Intermediate.cpp: (TIntermTraverser::hash): * src/compiler/OutputESSL.cpp: (TOutputESSL::TOutputESSL): * src/compiler/OutputESSL.h: (TOutputESSL): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::TOutputGLSL): * src/compiler/OutputGLSL.h: (TOutputGLSL): * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::TOutputGLSLBase): (TOutputGLSLBase::writeVariableType): (TOutputGLSLBase::writeFunctionParameters): (TOutputGLSLBase::writeConstantUnion): (TOutputGLSLBase::visitSymbol): (TOutputGLSLBase::visitBinary): (TOutputGLSLBase::visitAggregate): (TOutputGLSLBase::getTypeName): (TOutputGLSLBase::hashName): (TOutputGLSLBase::hashVariableName): (TOutputGLSLBase::hashFunctionName): * src/compiler/OutputGLSLBase.h: (TOutputGLSLBase): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitBranch): (sh::OutputHLSL::handleExcessiveLoop): * src/compiler/OutputHLSL.h: (OutputHLSL): * src/compiler/ParseHelper.cpp: (TParseContext::error): (TParseContext::nonInitConstErrorCheck): (PaParseStrings): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): (TParseContext): (TParseContext::numErrors): * src/compiler/RenameFunction.h: (RenameFunction::visitAggregate): * src/compiler/ShHandle.h: (TCompiler::getHashFunction): (TCompiler::getNameMap): (TCompiler::getSymbolTable): (TCompiler): * src/compiler/ShaderLang.cpp: (ShInitBuiltInResources): (ShGetInfo): (ShGetNameHashingEntry): * src/compiler/SymbolTable.cpp: (TType::TType): (TType::isStructureContainingArrays): * src/compiler/SymbolTable.h: (TSymbolTable::findBuiltIn): (TSymbolTable): * src/compiler/TranslatorESSL.cpp: (TranslatorESSL::translate): * src/compiler/TranslatorGLSL.cpp: (TranslatorGLSL::translate): * src/compiler/Types.h: (TType): (TPublicType): (TPublicType::setBasic): (TPublicType::setAggregate): (TPublicType::setArray): (TPublicType::isStructureContainingArrays): * src/compiler/UnfoldShortCircuit.cpp: (sh::UnfoldShortCircuit::visitBinary): * src/compiler/VariableInfo.cpp: (getVariableInfo): (getUserDefinedVariableInfo): (TVariableInfo::TVariableInfo): (CollectAttribsUniforms::CollectAttribsUniforms): (CollectAttribsUniforms::visitAggregate): * src/compiler/VariableInfo.h: (TVariableInfo): (CollectAttribsUniforms): * src/compiler/VariablePacker.cpp: Added. (VariablePacker::GetNumComponentsPerRow): (VariablePacker::GetNumRows): (TVariableInfoComparer::operator()): (VariablePacker::makeColumnFlags): (VariablePacker::fillColumns): (VariablePacker::searchColumn): (VariablePacker::CheckVariablesWithinPackingLimits): * src/compiler/VariablePacker.h: Added. (VariablePacker): * src/compiler/VersionGLSL.cpp: (TVersionGLSL::visitAggregate): * src/compiler/VersionGLSL.h: (TVersionGLSL): * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (string_input): (glslang_finalize): (glslang_scan): * src/compiler/glslang_tab.cpp: * src/compiler/intermediate.h: (TIntermTraverser): * src/compiler/osinclude.h: (OS_GetTLSValue): * src/compiler/ossource_nspr.cpp: * src/compiler/preprocessor/DiagnosticsBase.cpp: Added. (pp): (pp::Diagnostics::~Diagnostics): (pp::Diagnostics::report): (pp::Diagnostics::severity): (pp::Diagnostics::message): * src/compiler/preprocessor/DiagnosticsBase.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Diagnostics.h. (pp): (Diagnostics): * src/compiler/preprocessor/DirectiveHandlerBase.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/DirectiveHandlerBase.cpp. (pp): (pp::DirectiveHandler::~DirectiveHandler): * src/compiler/preprocessor/DirectiveHandlerBase.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/DirectiveHandler.h. (pp): (DirectiveHandler): * src/compiler/preprocessor/DirectiveParser.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/DirectiveParser.cpp. (getDirective): (isConditionalDirective): (isEOD): (skipUntilEOD): (isMacroNameReserved): (isMacroPredefined): (pp): (DefinedParser): (pp::DefinedParser::DefinedParser): (pp::DefinedParser::lex): (pp::DirectiveParser::DirectiveParser): (pp::DirectiveParser::lex): (pp::DirectiveParser::parseDirective): (pp::DirectiveParser::parseDefine): (pp::DirectiveParser::parseUndef): (pp::DirectiveParser::parseIf): (pp::DirectiveParser::parseIfdef): (pp::DirectiveParser::parseIfndef): (pp::DirectiveParser::parseElse): (pp::DirectiveParser::parseElif): (pp::DirectiveParser::parseEndif): (pp::DirectiveParser::parseError): (pp::DirectiveParser::parsePragma): (pp::DirectiveParser::parseExtension): (pp::DirectiveParser::parseVersion): (pp::DirectiveParser::parseLine): (pp::DirectiveParser::skipping): (pp::DirectiveParser::parseConditionalIf): (pp::DirectiveParser::parseExpressionIf): (pp::DirectiveParser::parseExpressionIfdef): * src/compiler/preprocessor/DirectiveParser.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/DirectiveParser.h. (pp): (DirectiveParser): (ConditionalBlock): (pp::DirectiveParser::ConditionalBlock::ConditionalBlock): * src/compiler/preprocessor/ExpressionParser.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/ExpressionParser.cpp. (yysyntax_error): (yylex): (yyerror): (pp): (pp::ExpressionParser::ExpressionParser): (pp::ExpressionParser::parse): * src/compiler/preprocessor/ExpressionParser.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/ExpressionParser.h. (pp): (ExpressionParser): * src/compiler/preprocessor/ExpressionParser.y: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/ExpressionParser.y. * src/compiler/preprocessor/Input.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Input.cpp. (pp): (pp::Input::Input): (pp::Input::read): * src/compiler/preprocessor/Input.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Input.h. (pp): (Input): (pp::Input::count): (pp::Input::string): (pp::Input::length): (Location): (pp::Input::Location::Location): (pp::Input::readLoc): * src/compiler/preprocessor/Lexer.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Lexer.cpp. (pp): (pp::Lexer::~Lexer): * src/compiler/preprocessor/Lexer.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Lexer.h. (pp): (Lexer): * src/compiler/preprocessor/Macro.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Macro.cpp. (pp): (pp::Macro::equals): * src/compiler/preprocessor/Macro.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Macro.h. (pp): (pp::Macro::Macro): (Macro): * src/compiler/preprocessor/MacroExpander.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/MacroExpander.cpp. (pp): (TokenLexer): (pp::TokenLexer::TokenLexer): (pp::TokenLexer::lex): (pp::MacroExpander::MacroExpander): (pp::MacroExpander::~MacroExpander): (pp::MacroExpander::lex): (pp::MacroExpander::getToken): (pp::MacroExpander::ungetToken): (pp::MacroExpander::isNextTokenLeftParen): (pp::MacroExpander::pushMacro): (pp::MacroExpander::popMacro): (pp::MacroExpander::expandMacro): (pp::MacroExpander::collectMacroArgs): (pp::MacroExpander::replaceMacroParams): * src/compiler/preprocessor/MacroExpander.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/MacroExpander.h. (pp): (MacroExpander): (MacroContext): (pp::MacroExpander::MacroContext::MacroContext): (pp::MacroExpander::MacroContext::empty): (pp::MacroExpander::MacroContext::get): (pp::MacroExpander::MacroContext::unget): * src/compiler/preprocessor/Preprocessor.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Preprocessor.cpp. (pp): (PreprocessorImpl): (pp::PreprocessorImpl::PreprocessorImpl): (pp::Preprocessor::Preprocessor): (pp::Preprocessor::~Preprocessor): (pp::Preprocessor::init): (pp::Preprocessor::predefineMacro): (pp::Preprocessor::lex): * src/compiler/preprocessor/Preprocessor.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Preprocessor.h. (pp): (Preprocessor): * src/compiler/preprocessor/SourceLocation.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/SourceLocation.h. (pp): (pp::SourceLocation::SourceLocation): (SourceLocation): (pp::SourceLocation::equals): (pp::operator==): (pp::operator!=): * src/compiler/preprocessor/Token.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Token.cpp. (pp): (pp::Token::reset): (pp::Token::equals): (pp::Token::setAtStartOfLine): (pp::Token::setHasLeadingSpace): (pp::Token::setExpansionDisabled): (pp::Token::iValue): (pp::Token::uValue): (pp::Token::fValue): (pp::operator<<): * src/compiler/preprocessor/Token.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Token.h. (pp): (pp::Token::Token): (Token): (pp::Token::atStartOfLine): (pp::Token::hasLeadingSpace): (pp::Token::expansionDisabled): (pp::operator==): (pp::operator!=): * src/compiler/preprocessor/Tokenizer.cpp: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Tokenizer.cpp. (yy_buffer_state): (yy_trans_info): (yyguts_t): (yy_get_previous_state): (yy_try_NUL_trans): (input): (pprestart): (pp_switch_to_buffer): (pp_load_buffer_state): (pp_create_buffer): (pp_delete_buffer): (pp_init_buffer): (pp_flush_buffer): (pppush_buffer_state): (pppop_buffer_state): (ppensure_buffer_stack): (pp_scan_buffer): (pp_scan_string): (pp_scan_bytes): (yy_fatal_error): (ppget_extra): (ppget_lineno): (ppget_column): (ppget_in): (ppget_out): (ppget_leng): (ppget_text): (ppset_extra): (ppset_lineno): (ppset_column): (ppset_in): (ppset_out): (ppget_debug): (ppset_debug): (ppget_lval): (ppset_lval): (ppget_lloc): (ppset_lloc): (pplex_init): (pplex_init_extra): (yy_init_globals): (pplex_destroy): (yy_flex_strncpy): (yy_flex_strlen): (ppalloc): (pprealloc): (ppfree): (pp): (pp::Tokenizer::Tokenizer): (pp::Tokenizer::~Tokenizer): (pp::Tokenizer::init): (pp::Tokenizer::setFileNumber): (pp::Tokenizer::setLineNumber): (pp::Tokenizer::lex): (pp::Tokenizer::initScanner): (pp::Tokenizer::destroyScanner): * src/compiler/preprocessor/Tokenizer.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Tokenizer.h. (pp): (Tokenizer): (Context): * src/compiler/preprocessor/Tokenizer.l: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/Tokenizer.l. * src/compiler/preprocessor/atom.c: Removed. * src/compiler/preprocessor/atom.h: Removed. * src/compiler/preprocessor/compile.h: Removed. * src/compiler/preprocessor/cpp.c: Removed. * src/compiler/preprocessor/cpp.h: Removed. * src/compiler/preprocessor/cppstruct.c: Removed. * src/compiler/preprocessor/generate_parser.sh: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/generate_parser.sh. * src/compiler/preprocessor/memory.c: Removed. * src/compiler/preprocessor/memory.h: Removed. * src/compiler/preprocessor/new/DiagnosticsBase.cpp: Removed. * src/compiler/preprocessor/new/new_file.cpp: Removed. * src/compiler/preprocessor/new/new_file2.cpp: Removed. * src/compiler/preprocessor/new/preprocessor.vcproj: Removed. * src/compiler/preprocessor/numeric_lex.h: Added. (pp): (pp::numeric_base_int): (pp::numeric_lex_int): (pp::numeric_lex_float): * src/compiler/preprocessor/parser.h: Removed. * src/compiler/preprocessor/pp_utils.h: Renamed from Source/ThirdParty/ANGLE/src/compiler/preprocessor/new/pp_utils.h. * src/compiler/preprocessor/preprocess.h: Removed. * src/compiler/preprocessor/scanner.c: Removed. * src/compiler/preprocessor/scanner.h: Removed. * src/compiler/preprocessor/slglobals.h: Removed. * src/compiler/preprocessor/symbols.c: Removed. * src/compiler/preprocessor/symbols.h: Removed. * src/compiler/preprocessor/tokens.c: Removed. * src/compiler/preprocessor/tokens.h: Removed. * src/libEGL/Config.cpp: Removed. * src/libEGL/Config.h: Removed. * src/libEGL/Display.cpp: Removed. * src/libEGL/Display.h: Removed. * src/libEGL/README: Added. * src/libEGL/Surface.cpp: Removed. * src/libEGL/Surface.h: Removed. * src/libEGL/libEGL.cpp: Removed. * src/libEGL/libEGL.def: Removed. * src/libEGL/libEGL.rc: Removed. * src/libEGL/libEGL.vcproj: Removed. * src/libEGL/main.cpp: Removed. * src/libEGL/main.h: Removed. * src/libEGL/resource.h: Removed. * src/libGLESv2/Blit.cpp: Removed. * src/libGLESv2/Blit.h: Removed. * src/libGLESv2/Buffer.cpp: Removed. * src/libGLESv2/Buffer.h: Removed. * src/libGLESv2/Context.cpp: Removed. * src/libGLESv2/Context.h: Removed. * src/libGLESv2/Fence.cpp: Removed. * src/libGLESv2/Fence.h: Removed. * src/libGLESv2/Framebuffer.cpp: Removed. * src/libGLESv2/Framebuffer.h: Removed. * src/libGLESv2/HandleAllocator.cpp: Removed. * src/libGLESv2/HandleAllocator.h: Removed. * src/libGLESv2/IndexDataManager.cpp: Removed. * src/libGLESv2/IndexDataManager.h: Removed. * src/libGLESv2/Program.cpp: Removed. * src/libGLESv2/Program.h: Removed. * src/libGLESv2/ProgramBinary.cpp: Removed. * src/libGLESv2/ProgramBinary.h: Removed. * src/libGLESv2/Query.cpp: Removed. * src/libGLESv2/Query.h: Removed. * src/libGLESv2/README: Added. * src/libGLESv2/Renderbuffer.cpp: Removed. * src/libGLESv2/Renderbuffer.h: Removed. * src/libGLESv2/ResourceManager.cpp: Removed. * src/libGLESv2/ResourceManager.h: Removed. * src/libGLESv2/Shader.cpp: Removed. * src/libGLESv2/Shader.h: Removed. * src/libGLESv2/Texture.cpp: Removed. * src/libGLESv2/Texture.h: Removed. * src/libGLESv2/VertexDataManager.cpp: Removed. * src/libGLESv2/VertexDataManager.h: Removed. * src/libGLESv2/libGLESv2.cpp: Removed. * src/libGLESv2/libGLESv2.def: Removed. * src/libGLESv2/libGLESv2.rc: Removed. * src/libGLESv2/libGLESv2.vcproj: Removed. * src/libGLESv2/main.cpp: Removed. * src/libGLESv2/main.h: Removed. * src/libGLESv2/mathutil.h: Removed. * src/libGLESv2/resource.h: Removed. * src/libGLESv2/utilities.cpp: Removed. * src/libGLESv2/utilities.h: Removed. * src/libGLESv2/vertexconversion.h: Removed. 2012-12-18 Max Vujovic [ANGLE] Use of uninitialized memory in ArrayBoundsClamper https://bugs.webkit.org/show_bug.cgi?id=105218 Reviewed by Dean Jackson. TIntermBinary::addIndexClamp is uninitialized when the compile flag SH_CLAMP_INDIRECT_ARRAY_BOUNDS is not set. Then, addIndexClamp is used in OutputGLSLBase. CSS Shaders needs to do a first validation pass without the SH_CLAMP_INDIRECT_ARRAY_BOUNDS flag and its effects. However, sometimes addIndexClamp is true, which inserts clamping code that causes a shader to fail compilation at the WebGL level. * src/compiler/intermediate.h: (TIntermBinary::TIntermBinary): 2012-10-29 Anders Carlsson Build WebKit as C++11 on Mac https://bugs.webkit.org/show_bug.cgi?id=100720 Reviewed by Daniel Bates. * Configurations/Base.xcconfig: Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x. 2012-10-28 Mark Rowe Simplify Xcode configuration settings that used to vary between OS versions. Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2012-10-28 Mark Rowe Remove references to unsupported OS and Xcode versions. Reviewed by Anders Carlsson. * Configurations/Base.xcconfig: * Configurations/CompilerVersion.xcconfig: Removed. * Configurations/DebugRelease.xcconfig: 2012-10-27 Dan Bernstein REAL_PLATFORM_NAME build setting is no longer needed https://bugs.webkit.org/show_bug.cgi?id=100587 Reviewed by Mark Rowe. Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references to PLATFORM_NAME. * Configurations/Base.xcconfig: * Configurations/CompilerVersion.xcconfig: 2012-10-18 Dean Jackson Shader translator needs option to clamp uniform array accesses in vertex shaders https://bugs.webkit.org/show_bug.cgi?id=98977 https://code.google.com/p/angleproject/issues/detail?id=49 Reviewed by Alok Priyadarshi and Ken Russell. WebGL does not allow GLSL code to index a uniform array outside its bounds. Add a flag to the ANGLE compiler to insert clamp statements around such indexing. Since it is possible to access vec2/3/4 and mat2/3/4 components by array indexing, they must be similarly clamped. Unfortunately, it is currently not possible to always determine that the indexing is operating on a uniform variable. For example, suppose we have "uniform mat4 a". ANGLE is currently not able to tell us that the rvalue of "a[0]" is a uniform, just that it has a size of 4. Therefore, the clamping is done on all indirect array indexing. This will have a performance impact. Future enhancements may be able to determine cases where the clamping is not necessary. Currently only direct indexing is skipped (i.e. looking up a value using a constant index). The clamp insertion is only performed on the GLSL output. Direct3D already guarantees that out-of-bounds uniform array access returns a zero value. * ANGLE.xcodeproj/project.pbxproj: * Target.pri: * include/GLSLANG/ShaderLang.h: New compiler option. * src/compiler/ArrayBoundsClamper.cpp: Added. (ArrayBoundsClamper::ArrayBoundsClamper): (ArrayBoundsClamper::OutputClampingFunctionDefinition): Injects a clamping function for integers into GLSL source. (ArrayBoundsClamper::MarkIndirectArrayBoundsForClamping): Examines the AST looking for non-direct array indexing. * src/compiler/ArrayBoundsClamper.h: Added. (ArrayBoundsClamper): (ArrayBoundsClamper::GetArrayBoundsClampDefinitionNeeded): (ArrayBoundsClamper::SetArrayBoundsClampDefinitionNeeded): Marks the object as needing to output the clamping function. (ArrayBoundsClamper::Cleanup): Resets the state so that subsequent runs start fresh. * src/compiler/Compiler.cpp: (TCompiler::compile): Run the clamping code if the compile option was set. (TCompiler::clearResults): (TCompiler::getArrayBoundsClamper): * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::visitBinary): If the expression has been flagged, insert an appropriate "clamp" statement. * src/compiler/ShHandle.h: (TCompiler): * src/compiler/TranslatorESSL.cpp: (TranslatorESSL::translate): * src/compiler/TranslatorGLSL.cpp: (TranslatorGLSL::translate): * src/compiler/intermOut.cpp: (TType::getCompleteString): Add array size to intermediate tree output. * src/compiler/intermediate.h: (TIntermBinary::setAddIndexClamp): New flag for indicating a binary expression needs clamping. (TIntermBinary::getAddIndexClamp): (TIntermBinary): 2012-09-13 Mark Rowe Fix the build with newer Clang Reviewed by Sam Weinig. Clang generates a warning about the inclusion of trailing commas on the final enum item as it's apparently a C++11 extension. Remove them. * src/compiler/BaseTypes.h: * src/compiler/ExtensionBehavior.h: * src/compiler/ParseHelper.cpp: (TParseContext::parseVectorFields): * src/compiler/intermediate.h: 2012-09-13 Simon Hausmann [Qt] The ANGLE build on Windows breaks with GnuWin32's flex because it is too old https://bugs.webkit.org/show_bug.cgi?id=96359 Reviewed by Tor Arne Vestbø. GnuWin32's flex is 2.5.4 and that is too old for ANGLE's preprocessor lexer. The only viable alternative I could find on Windows that provides binaries is the winflexbison distribution (http://sourceforge.net/projects/winflexbison/), so let's use that one instead. * DerivedSources.pri: 2012-09-12 Simon Hausmann [Qt] Build on Windows requires bison/flex in PATH https://bugs.webkit.org/show_bug.cgi?id=96358 Reviewed by Tor Arne Vestbø. Use MAKEFILE_NOOP_COMMAND instead of the \n\t trick to generate a dummy command. Otherwise the PATH prepend trick will break because it generates a command line along the lines of (set PATH="...") && with just that trailing ampersand pair. * DerivedSources.pri: 2012-09-10 Dean Jackson [Apple] Install plist for Apple Open Source build system https://bugs.webkit.org/show_bug.cgi?id=96345 Reviewed by Mark Rowe. Apple's build system requires a couple of files that describe where the 3rd party Open Source library came from, and what license it uses. These files are copied into /usr/local when the project is being installed. * ANGLE.plist: Added. * ANGLE.txt: Added. * ANGLE.xcodeproj/project.pbxproj: 2012-09-06 Andras Becsi [ANGLE] Fix the build with gcc 4.7 https://bugs.webkit.org/show_bug.cgi?id=95989 Reviewed by Csaba Osztrogonác. The build fails because of a bogus warning about the auto-generated pplval variable. Unfortunately the warning is called -Wuninitialized in gcc 4.6 and -Wmaybe-uninitialized in gcc 4.7 thus we also need to ignore unknown pragmas not to break the build with compilers that do not recognize these options. * src/compiler/preprocessor/new/ExpressionParser.y: 2012-09-06 Simon Hausmann [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2 https://bugs.webkit.org/show_bug.cgi?id=95965 Reviewed by Tor Arne Vestbø. Add build rules to build ANGLE as a static library for the Qt port. * ANGLE.pri: Added. * ANGLE.pro: Added. * DerivedSources.pri: Added. * Target.pri: Added. 2012-08-24 Joshua Netterfield [CSS Shaders] [ANGLE] RenameFunction::RenameFunction may store references to temporary string https://bugs.webkit.org/show_bug.cgi?id=94736 http://code.google.com/p/angleproject/issues/detail?id=360 Reviewed by George Staikos. When RenameFunction::RenameFunction(const TString& oldFunctionName, const TString& newFunctionName) is called from TCompiler::rewriteCSSShader(TIntermNode*), references to the temporaries oldFunctionName and newFunctionName are stored as mOldFunctionName and mNewFunctionName. This results in undefined behaviour in visitAggregate. This same patch is being applied in upstream ANGLE, and is needed for CSS Shader sanitization. * src/compiler/RenameFunction.h: (RenameFunction::visitAggregate): (RenameFunction): 2012-07-18 Kristóf Kosztyó [Qt] Buildfix after r122870. https://bugs.webkit.org/show_bug.cgi?id=89039 Reviewed by Csaba Osztrogonác * src/compiler/preprocessor/new/MacroExpander.cpp: (pp::MacroExpander::ungetToken): 2012-07-17 Max Vujovic Update ANGLE in WebKit https://bugs.webkit.org/show_bug.cgi?id=89039 Reviewed by Dean Jackson and Mark Rowe. Update ANGLE to r1170, with the following modifications: (1) Use Bison 2.3 instead of Bison 2.4.2 to generate ExpressionParser.cpp and glslang_tab.cpp. I had to modify ExpressionParser.y to make it compatible with Bison 2.3. The changes have been contributed back to ANGLE in r1224. (2) Continue to recognize QNX as POSIX in ANGLE. This has been contributed back to ANGLE in r1223. (3) Rename ANGLE/src/compiler/preprocessor/new/Diagnostic.cpp to DiagnosticBase.cpp. Rename ANGLE/src/compiler/preprocessor/new/DirectiveHandler.cpp to DirectiveHandlerBase.cpp. With the introduction of ANGLE's new preprocessor, there were two files named Diagnostic.cpp in ANGLE under different folders. This caused problems on the QT build when their object files, both named Diagnostic.o, tried to go in the same folder. Renaming one of them to DiagnosticBase.cpp avoids this conflict. The same situation occurred with DirectiveHandler.cpp. I will work on contributing this change back to ANGLE for future updates. (4) Add the following lines to glslang.y and ExpressionParser.y: #define YYENABLE_NLS 0 #define YYLTYPE_IS_TRIVIAL 1 Bison 2.3 doesn't first check that these macros are defined before reading their value, which causes the QT build to fail. We work around this issue in the same way in CSSGrammar.y. I will work on contributing this change back to ANGLE. * ANGLE.xcodeproj/project.pbxproj: * include/GLES2/gl2ext.h: * include/GLSLANG/ShaderLang.h: * src/build_angle.xcodeproj/project.pbxproj: * src/common/angleutils.h: * src/common/debug.cpp: (gl): (gl::output): (gl::trace): (gl::perfActive): (gl::ScopedPerfEventHelper::ScopedPerfEventHelper): (gl::ScopedPerfEventHelper::~ScopedPerfEventHelper): * src/common/version.h: * src/compiler/BuiltInFunctionEmulator.cpp: (BuiltInFunctionEmulator::IdentifyFunction): * src/compiler/BuiltInFunctionEmulator.h: * src/compiler/Compiler.cpp: (isWebGLBasedSpec): (TCompiler::compile): (TCompiler::rewriteCSSShader): (TCompiler::enforceTimingRestrictions): (TCompiler::enforceFragmentShaderTimingRestrictions): (TCompiler::enforceVertexShaderTimingRestrictions): * src/compiler/DetectDiscontinuity.cpp: Added. (sh::DetectLoopDiscontinuity::traverse): (sh): (sh::DetectLoopDiscontinuity::visitBranch): (sh::DetectLoopDiscontinuity::visitAggregate): (sh::containsLoopDiscontinuity): (sh::DetectGradientOperation::traverse): (sh::DetectGradientOperation::visitUnary): (sh::DetectGradientOperation::visitAggregate): (sh::containsGradientOperation): * src/compiler/DetectDiscontinuity.h: Added. (sh): (DetectLoopDiscontinuity): (DetectGradientOperation): * src/compiler/Diagnostics.cpp: Added. (TDiagnostics::TDiagnostics): (TDiagnostics::~TDiagnostics): (TDiagnostics::writeInfo): (TDiagnostics::writeDebug): (TDiagnostics::print): * src/compiler/Diagnostics.h: Added. (TDiagnostics): (TDiagnostics::infoSink): * src/compiler/DirectiveHandler.cpp: Added. (getBehavior): (TDirectiveHandler::TDirectiveHandler): (TDirectiveHandler::~TDirectiveHandler): (TDirectiveHandler::handleError): (TDirectiveHandler::handlePragma): (TDirectiveHandler::handleExtension): (TDirectiveHandler::handleVersion): * src/compiler/DirectiveHandler.h: Added. (TDirectiveHandler): (TDirectiveHandler::pragma): (TDirectiveHandler::extensionBehavior): * src/compiler/ExtensionBehavior.h: (getBehaviorString): * src/compiler/Initialize.cpp: (BuiltInConstants): (TBuiltIns::initialize): (IdentifyBuiltIns): * src/compiler/InitializeParseContext.cpp: Added. (InitializeParseContextIndex): (FreeParseContextIndex): (InitializeGlobalParseContext): (FreeParseContext): (GetGlobalParseContext): * src/compiler/InitializeParseContext.h: (TThreadParseContextRec): * src/compiler/Intermediate.cpp: (TIntermediate::addSelection): * src/compiler/MapLongVariableNames.cpp: * src/compiler/OutputHLSL.cpp: (sh::str): (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::~OutputHLSL): (sh::OutputHLSL::output): (sh::OutputHLSL::header): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitUnary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::traverseStatements): (sh): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::typeString): (sh::OutputHLSL::addConstructor): (sh::OutputHLSL::decorateField): * src/compiler/OutputHLSL.h: (sh): (OutputHLSL): * src/compiler/ParseHelper.cpp: (TParseContext::parseVectorFields): (TParseContext::parseMatrixFields): (TParseContext::error): (TParseContext::warning): (TParseContext::trace): (TParseContext::assignError): (TParseContext::unaryOpError): (TParseContext::binaryOpError): (TParseContext::precisionErrorCheck): (TParseContext::lValueErrorCheck): (TParseContext::constErrorCheck): (TParseContext::integerErrorCheck): (TParseContext::globalErrorCheck): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::voidErrorCheck): (TParseContext::boolErrorCheck): (TParseContext::samplerErrorCheck): (TParseContext::structQualifierErrorCheck): (TParseContext::parameterSamplerErrorCheck): (TParseContext::arraySizeErrorCheck): (TParseContext::arrayQualifierErrorCheck): (TParseContext::arrayTypeErrorCheck): (TParseContext::arrayErrorCheck): (TParseContext::arraySetMaxSize): (TParseContext::nonInitConstErrorCheck): (TParseContext::nonInitErrorCheck): (TParseContext::paramErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::supportsExtension): (TParseContext::handleExtensionDirective): (TParseContext::handlePragmaDirective): (TParseContext::findFunction): (TParseContext::executeInitializer): (TParseContext::constructBuiltIn): (TParseContext::constructStruct): (TParseContext::addConstVectorNode): (TParseContext::addConstMatrixNode): (TParseContext::addConstArrayNode): (TParseContext::addConstStruct): (TParseContext::enterStructDeclaration): (TParseContext::structNestingErrorCheck): (PaParseStrings): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): (TParseContext): (TParseContext::infoSink): (TParseContext::extensionBehavior): (TParseContext::pragma): * src/compiler/PoolAlloc.cpp: (TAllocation::checkGuardBlock): * src/compiler/Pragma.h: Added. (TPragma): (TPragma::TPragma): * src/compiler/RenameFunction.h: Added. (RenameFunction): (RenameFunction::RenameFunction): (RenameFunction::visitAggregate): * src/compiler/ShHandle.h: (TCompiler): * src/compiler/ShaderLang.cpp: (getVariableInfo): * src/compiler/SymbolTable.cpp: (TType::buildMangledName): * src/compiler/TranslatorHLSL.cpp: * src/compiler/UnfoldSelect.cpp: Removed. * src/compiler/UnfoldSelect.h: Removed. * src/compiler/UnfoldShortCircuit.cpp: Added. (sh::UnfoldShortCircuit::UnfoldShortCircuit): (sh): (sh::UnfoldShortCircuit::traverse): (sh::UnfoldShortCircuit::visitBinary): (sh::UnfoldShortCircuit::visitSelection): (sh::UnfoldShortCircuit::visitLoop): (sh::UnfoldShortCircuit::getNextTemporaryIndex): * src/compiler/UnfoldShortCircuit.h: Added. (sh): (UnfoldShortCircuit): * src/compiler/ValidateLimitations.cpp: * src/compiler/debug.cpp: * src/compiler/depgraph: Added. * src/compiler/depgraph/DependencyGraph.cpp: Added. (TDependencyGraph::TDependencyGraph): (TDependencyGraph::~TDependencyGraph): (TDependencyGraph::createArgument): (TDependencyGraph::createFunctionCall): (TDependencyGraph::getOrCreateSymbol): (TDependencyGraph::createSelection): (TDependencyGraph::createLoop): (TDependencyGraph::createLogicalOp): (TGraphLogicalOp::getOpString): * src/compiler/depgraph/DependencyGraph.h: Added. (TGraphNode): (TGraphNode::TGraphNode): (TGraphNode::~TGraphNode): (TGraphParentNode): (TGraphParentNode::TGraphParentNode): (TGraphParentNode::~TGraphParentNode): (TGraphParentNode::addDependentNode): (TGraphArgument): (TGraphArgument::TGraphArgument): (TGraphArgument::~TGraphArgument): (TGraphArgument::getIntermFunctionCall): (TGraphArgument::getArgumentNumber): (TGraphFunctionCall): (TGraphFunctionCall::TGraphFunctionCall): (TGraphFunctionCall::~TGraphFunctionCall): (TGraphFunctionCall::getIntermFunctionCall): (TGraphSymbol): (TGraphSymbol::TGraphSymbol): (TGraphSymbol::~TGraphSymbol): (TGraphSymbol::getIntermSymbol): (TGraphSelection): (TGraphSelection::TGraphSelection): (TGraphSelection::~TGraphSelection): (TGraphSelection::getIntermSelection): (TGraphLoop): (TGraphLoop::TGraphLoop): (TGraphLoop::~TGraphLoop): (TGraphLoop::getIntermLoop): (TGraphLogicalOp): (TGraphLogicalOp::TGraphLogicalOp): (TGraphLogicalOp::~TGraphLogicalOp): (TGraphLogicalOp::getIntermLogicalOp): (TDependencyGraph): (TDependencyGraph::begin): (TDependencyGraph::end): (TDependencyGraph::beginSamplerSymbols): (TDependencyGraph::endSamplerSymbols): (TDependencyGraph::beginUserDefinedFunctionCalls): (TDependencyGraph::endUserDefinedFunctionCalls): (TDependencyGraphTraverser): (TDependencyGraphTraverser::TDependencyGraphTraverser): (TDependencyGraphTraverser::visitSymbol): (TDependencyGraphTraverser::visitArgument): (TDependencyGraphTraverser::visitFunctionCall): (TDependencyGraphTraverser::visitSelection): (TDependencyGraphTraverser::visitLoop): (TDependencyGraphTraverser::visitLogicalOp): (TDependencyGraphTraverser::getDepth): (TDependencyGraphTraverser::incrementDepth): (TDependencyGraphTraverser::decrementDepth): (TDependencyGraphTraverser::clearVisited): (TDependencyGraphTraverser::markVisited): (TDependencyGraphTraverser::isVisited): * src/compiler/depgraph/DependencyGraphBuilder.cpp: Added. (TDependencyGraphBuilder::build): (TDependencyGraphBuilder::visitAggregate): (TDependencyGraphBuilder::visitFunctionDefinition): (TDependencyGraphBuilder::visitFunctionCall): (TDependencyGraphBuilder::visitAggregateChildren): (TDependencyGraphBuilder::visitSymbol): (TDependencyGraphBuilder::visitBinary): (TDependencyGraphBuilder::visitAssignment): (TDependencyGraphBuilder::visitLogicalOp): (TDependencyGraphBuilder::visitBinaryChildren): (TDependencyGraphBuilder::visitSelection): (TDependencyGraphBuilder::visitLoop): (TDependencyGraphBuilder::connectMultipleNodesToSingleNode): * src/compiler/depgraph/DependencyGraphBuilder.h: Added. (TDependencyGraphBuilder): (TNodeSetStack): (TDependencyGraphBuilder::TNodeSetStack::TNodeSetStack): (TDependencyGraphBuilder::TNodeSetStack::~TNodeSetStack): (TDependencyGraphBuilder::TNodeSetStack::getTopSet): (TDependencyGraphBuilder::TNodeSetStack::pushSet): (TDependencyGraphBuilder::TNodeSetStack::popSet): (TDependencyGraphBuilder::TNodeSetStack::popSetIntoNext): (TDependencyGraphBuilder::TNodeSetStack::insertIntoTopSet): (TDependencyGraphBuilder::TNodeSetStack::clear): (TNodeSetMaintainer): (TDependencyGraphBuilder::TNodeSetMaintainer::TNodeSetMaintainer): (TDependencyGraphBuilder::TNodeSetMaintainer::~TNodeSetMaintainer): (TNodeSetPropagatingMaintainer): (TDependencyGraphBuilder::TNodeSetPropagatingMaintainer::TNodeSetPropagatingMaintainer): (TDependencyGraphBuilder::TNodeSetPropagatingMaintainer::~TNodeSetPropagatingMaintainer): (TLeftmostSymbolMaintainer): (TDependencyGraphBuilder::TLeftmostSymbolMaintainer::TLeftmostSymbolMaintainer): (TDependencyGraphBuilder::TLeftmostSymbolMaintainer::~TLeftmostSymbolMaintainer): (TDependencyGraphBuilder::TDependencyGraphBuilder): (TDependencyGraphBuilder::build): * src/compiler/depgraph/DependencyGraphOutput.cpp: Added. (TDependencyGraphOutput::outputIndentation): (TDependencyGraphOutput::visitArgument): (TDependencyGraphOutput::visitFunctionCall): (TDependencyGraphOutput::visitSymbol): (TDependencyGraphOutput::visitSelection): (TDependencyGraphOutput::visitLoop): (TDependencyGraphOutput::visitLogicalOp): (TDependencyGraphOutput::outputAllSpanningTrees): * src/compiler/depgraph/DependencyGraphOutput.h: Added. (TDependencyGraphOutput): (TDependencyGraphOutput::TDependencyGraphOutput): * src/compiler/depgraph/DependencyGraphTraverse.cpp: Added. (TGraphNode::traverse): (TGraphParentNode::traverse): (TGraphArgument::traverse): (TGraphFunctionCall::traverse): (TGraphSymbol::traverse): (TGraphSelection::traverse): (TGraphLoop::traverse): (TGraphLogicalOp::traverse): * src/compiler/glslang.h: * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (yy_buffer_state): (yyguts_t): (yy_get_previous_state): (yy_try_NUL_trans): (input): (yyensure_buffer_stack): (yy_scan_bytes): (yyget_leng): (string_input): (yyerror): (glslang_finalize): (glslang_scan): * src/compiler/glslang_tab.cpp: * src/compiler/intermediate.h: (TIntermAggregate::TIntermAggregate): (TIntermAggregate::~TIntermAggregate): (TIntermAggregate::isUserDefined): (TIntermAggregate): (TIntermTraverser::~TIntermTraverser): * src/compiler/osinclude.h: * src/compiler/preprocessor/atom.c: (FindHashLoc): (PrintAtomTable): * src/compiler/preprocessor/cpp.c: (CPPpragma): (readCPPline): (PredefineIntMacro): (MacroExpand): * src/compiler/preprocessor/cpp.h: * src/compiler/preprocessor/memory.h: * src/compiler/preprocessor/new: Added properties allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs, allow-tabs and allow-tabs. * src/compiler/preprocessor/new/Context.cpp: Removed. * src/compiler/preprocessor/new/Context.h: Removed. * src/compiler/preprocessor/new/Diagnostics.h: Added. (pp): (Diagnostics): * src/compiler/preprocessor/new/DiagnosticsBase.cpp: Added. (pp): (pp::Diagnostics::~Diagnostics): (pp::Diagnostics::report): (pp::Diagnostics::severity): * src/compiler/preprocessor/new/DirectiveHandler.h: Added. (pp): (DirectiveHandler): * src/compiler/preprocessor/new/DirectiveHandlerBase.cpp: Added. (pp): (pp::DirectiveHandler::~DirectiveHandler): * src/compiler/preprocessor/new/DirectiveParser.cpp: Added. (getDirective): (isConditionalDirective): (isEOD): (skipUntilEOD): (isMacroNameReserved): (isMacroPredefined): (pp): (DefinedParser): (pp::DefinedParser::DefinedParser): (pp::DefinedParser::lex): (pp::DirectiveParser::DirectiveParser): (pp::DirectiveParser::lex): (pp::DirectiveParser::parseDirective): (pp::DirectiveParser::parseDefine): (pp::DirectiveParser::parseUndef): (pp::DirectiveParser::parseIf): (pp::DirectiveParser::parseIfdef): (pp::DirectiveParser::parseIfndef): (pp::DirectiveParser::parseElse): (pp::DirectiveParser::parseElif): (pp::DirectiveParser::parseEndif): (pp::DirectiveParser::parseError): (pp::DirectiveParser::parsePragma): (pp::DirectiveParser::parseExtension): (pp::DirectiveParser::parseVersion): (pp::DirectiveParser::parseLine): (pp::DirectiveParser::skipping): (pp::DirectiveParser::parseConditionalIf): (pp::DirectiveParser::parseExpressionIf): (pp::DirectiveParser::parseExpressionIfdef): * src/compiler/preprocessor/new/DirectiveParser.h: Added. (pp): (DirectiveParser): (ConditionalBlock): (pp::DirectiveParser::ConditionalBlock::ConditionalBlock): * src/compiler/preprocessor/new/ExpressionParser.cpp: Added. (yysyntax_error): (yylex): (yyerror): (pp): (pp::ExpressionParser::ExpressionParser): (pp::ExpressionParser::parse): * src/compiler/preprocessor/new/ExpressionParser.h: Added. (pp): (ExpressionParser): * src/compiler/preprocessor/new/ExpressionParser.y: Added. * src/compiler/preprocessor/new/Input.cpp: Added property allow-tabs. (pp::Input::Input): (pp::Input::read): * src/compiler/preprocessor/new/Input.h: Added property allow-tabs. (pp): (Input): (pp::Input::count): (pp::Input::string): (pp::Input::length): (Location): (pp::Input::Location::Location): (pp::Input::readLoc): * src/compiler/preprocessor/new/Lexer.cpp: Added. (pp): (pp::Lexer::~Lexer): * src/compiler/preprocessor/new/Lexer.h: Added. (pp): (Lexer): * src/compiler/preprocessor/new/Macro.cpp: Added property allow-tabs. (pp::Macro::equals): * src/compiler/preprocessor/new/Macro.h: Added property allow-tabs. (pp): (pp::Macro::Macro): (Macro): * src/compiler/preprocessor/new/MacroExpander.cpp: Added. (pp): (TokenLexer): (pp::TokenLexer::TokenLexer): (pp::TokenLexer::lex): (pp::MacroExpander::MacroExpander): (pp::MacroExpander::~MacroExpander): (pp::MacroExpander::lex): (pp::MacroExpander::getToken): (pp::MacroExpander::ungetToken): (pp::MacroExpander::isNextTokenLeftParen): (pp::MacroExpander::pushMacro): (pp::MacroExpander::popMacro): (pp::MacroExpander::expandMacro): (pp::MacroExpander::collectMacroArgs): (pp::MacroExpander::replaceMacroParams): * src/compiler/preprocessor/new/MacroExpander.h: Added. (pp): (MacroExpander): (MacroContext): (pp::MacroExpander::MacroContext::MacroContext): (pp::MacroExpander::MacroContext::empty): (pp::MacroExpander::MacroContext::get): (pp::MacroExpander::MacroContext::unget): * src/compiler/preprocessor/new/Preprocessor.cpp: Added property allow-tabs. (PreprocessorImpl): (pp::PreprocessorImpl::PreprocessorImpl): (pp): (pp::Preprocessor::Preprocessor): (pp::Preprocessor::~Preprocessor): (pp::Preprocessor::init): (pp::Preprocessor::predefineMacro): (pp::Preprocessor::lex): * src/compiler/preprocessor/new/Preprocessor.h: Added property allow-tabs. (pp): (Preprocessor): * src/compiler/preprocessor/new/SourceLocation.h: Added. (pp): (pp::SourceLocation::SourceLocation): (SourceLocation): (pp::SourceLocation::equals): (pp::operator==): (pp::operator!=): * src/compiler/preprocessor/new/Token.cpp: Added property allow-tabs. (pp::Token::reset): (pp::Token::equals): (pp::Token::setAtStartOfLine): (pp::Token::setHasLeadingSpace): (pp): (pp::Token::setExpansionDisabled): (pp::operator<<): * src/compiler/preprocessor/new/Token.h: Added property allow-tabs. (pp::Token::Token): (Token): (pp::Token::atStartOfLine): (pp::Token::hasLeadingSpace): (pp::Token::expansionDisabled): (pp::operator==): (pp): (pp::operator!=): * src/compiler/preprocessor/new/Tokenizer.cpp: Added. (yy_buffer_state): (yy_trans_info): (yyguts_t): (yy_get_previous_state): (yy_try_NUL_trans): (input): (pprestart): (pp_switch_to_buffer): (pp_load_buffer_state): (pp_create_buffer): (pp_delete_buffer): (pp_init_buffer): (pp_flush_buffer): (pppush_buffer_state): (pppop_buffer_state): (ppensure_buffer_stack): (pp_scan_buffer): (pp_scan_string): (pp_scan_bytes): (yy_fatal_error): (ppget_extra): (ppget_lineno): (ppget_column): (ppget_in): (ppget_out): (ppget_leng): (ppget_text): (ppset_extra): (ppset_lineno): (ppset_column): (ppset_in): (ppset_out): (ppget_debug): (ppset_debug): (ppget_lval): (ppset_lval): (ppget_lloc): (ppset_lloc): (pplex_init): (pplex_init_extra): (yy_init_globals): (pplex_destroy): (yy_flex_strncpy): (yy_flex_strlen): (ppalloc): (pprealloc): (ppfree): (pp): (pp::Tokenizer::Tokenizer): (pp::Tokenizer::~Tokenizer): (pp::Tokenizer::init): (pp::Tokenizer::setFileNumber): (pp::Tokenizer::setLineNumber): (pp::Tokenizer::lex): (pp::Tokenizer::initScanner): (pp::Tokenizer::destroyScanner): * src/compiler/preprocessor/new/Tokenizer.h: Added. (pp): (Tokenizer): (Context): * src/compiler/preprocessor/new/Tokenizer.l: Added. * src/compiler/preprocessor/new/generate_parser.sh: Added property allow-tabs. * src/compiler/preprocessor/new/pp.l: Removed. * src/compiler/preprocessor/new/pp.y: Removed. * src/compiler/preprocessor/new/pp_lex.cpp: Removed. * src/compiler/preprocessor/new/pp_tab.cpp: Removed. * src/compiler/preprocessor/new/pp_tab.h: Removed. * src/compiler/preprocessor/new/pp_utils.h: Added. * src/compiler/preprocessor/new/preprocessor.vcproj: Added. * src/compiler/preprocessor/new/stl_utils.h: Removed. * src/compiler/preprocessor/new/token_type.h: Removed. * src/compiler/preprocessor/preprocess.h: * src/compiler/preprocessor/scanner.c: (InitScannerInput): * src/compiler/preprocessor/scanner.h: * src/compiler/preprocessor/symbols.h: * src/compiler/preprocessor/tokens.c: (ReadToken): (DumpTokenStream): * src/compiler/preprocessor/tokens.h: * src/compiler/timing: Added. * src/compiler/timing/RestrictFragmentShaderTiming.cpp: Added. (RestrictFragmentShaderTiming::RestrictFragmentShaderTiming): (RestrictFragmentShaderTiming::enforceRestrictions): (RestrictFragmentShaderTiming::validateUserDefinedFunctionCallUsage): (RestrictFragmentShaderTiming::beginError): (RestrictFragmentShaderTiming::isSamplingOp): (RestrictFragmentShaderTiming::visitArgument): (RestrictFragmentShaderTiming::visitSelection): (RestrictFragmentShaderTiming::visitLoop): (RestrictFragmentShaderTiming::visitLogicalOp): * src/compiler/timing/RestrictFragmentShaderTiming.h: Added. (RestrictFragmentShaderTiming): (RestrictFragmentShaderTiming::numErrors): * src/compiler/timing/RestrictVertexShaderTiming.cpp: Added. (RestrictVertexShaderTiming::visitSymbol): * src/compiler/timing/RestrictVertexShaderTiming.h: Added. (RestrictVertexShaderTiming): (RestrictVertexShaderTiming::RestrictVertexShaderTiming): (RestrictVertexShaderTiming::enforceRestrictions): (RestrictVertexShaderTiming::numErrors): * src/libEGL/Display.cpp: (egl): (egl::Display::getDepthTextureSupport): (egl::Display::getTexturePool): * src/libEGL/Display.h: (Display): * src/libEGL/Surface.cpp: (egl::Surface::Surface): (egl::Surface::release): (egl::Surface::resetSwapChain): (egl::Surface::swapRect): (egl): (egl::Surface::swap): (egl::Surface::postSubBuffer): * src/libEGL/Surface.h: (Surface): * src/libEGL/libEGL.cpp: * src/libGLESv2/Context.cpp: (gl::Context::makeCurrent): (gl::Context::markDxUniformsDirty): (gl): (gl::Context::getIntegerv): (gl::Context::getQueryParameterInfo): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::applyShaders): (gl::Context::applyTextures): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::supportsDepthTextures): (gl::Context::initExtensionString): (gl::Context::blitFramebuffer): (gl::VertexDeclarationCache::applyDeclaration): * src/libGLESv2/Context.h: (Context): * src/libGLESv2/Framebuffer.cpp: (gl::Framebuffer::~Framebuffer): (gl): (gl::Framebuffer::getNullColorbuffer): (gl::Framebuffer::completeness): * src/libGLESv2/Framebuffer.h: (Framebuffer): * src/libGLESv2/Program.cpp: (gl): (gl::AttributeBindings::AttributeBindings): (gl::AttributeBindings::~AttributeBindings): (gl::InfoLog::InfoLog): (gl::InfoLog::~InfoLog): (gl::InfoLog::getLength): (gl::InfoLog::getLog): (gl::InfoLog::appendSanitized): (gl::InfoLog::append): (gl::InfoLog::reset): (gl::Program::Program): (gl::Program::~Program): (gl::Program::attachShader): (gl::Program::detachShader): (gl::Program::getAttachedShadersCount): (gl::AttributeBindings::bindAttributeLocation): (gl::Program::bindAttributeLocation): (gl::Program::link): (gl::AttributeBindings::getAttributeBinding): (gl::Program::unlink): (gl::Program::getProgramBinary): (gl::Program::setProgramBinary): (gl::Program::getInfoLogLength): (gl::Program::getInfoLog): (gl::Program::getActiveAttribute): (gl::Program::getActiveAttributeCount): (gl::Program::getActiveAttributeMaxLength): (gl::Program::getActiveUniform): (gl::Program::getActiveUniformCount): (gl::Program::getActiveUniformMaxLength): (gl::Program::validate): (gl::Program::isValidated): * src/libGLESv2/Program.h: (gl): (AttributeBindings): (InfoLog): (Program): * src/libGLESv2/ProgramBinary.cpp: Added. (gl::str): (gl): (gl::Uniform::Uniform): (gl::Uniform::~Uniform): (gl::Uniform::isArray): (gl::UniformLocation::UniformLocation): (gl::ProgramBinary::ProgramBinary): (gl::ProgramBinary::~ProgramBinary): (gl::ProgramBinary::getPixelShader): (gl::ProgramBinary::getVertexShader): (gl::ProgramBinary::getAttributeLocation): (gl::ProgramBinary::getSemanticIndex): (gl::ProgramBinary::getUsedSamplerRange): (gl::ProgramBinary::getSamplerMapping): (gl::ProgramBinary::getSamplerTextureType): (gl::ProgramBinary::getUniformLocation): (gl::ProgramBinary::setUniform1fv): (gl::ProgramBinary::setUniform2fv): (gl::ProgramBinary::setUniform3fv): (gl::ProgramBinary::setUniform4fv): (gl::transposeMatrix): (gl::ProgramBinary::setUniformMatrix2fv): (gl::ProgramBinary::setUniformMatrix3fv): (gl::ProgramBinary::setUniformMatrix4fv): (gl::ProgramBinary::setUniform1iv): (gl::ProgramBinary::setUniform2iv): (gl::ProgramBinary::setUniform3iv): (gl::ProgramBinary::setUniform4iv): (gl::ProgramBinary::getUniformfv): (gl::ProgramBinary::getUniformiv): (gl::ProgramBinary::dirtyAllUniforms): (gl::ProgramBinary::applyUniforms): (gl::ProgramBinary::compileToBinary): (gl::ProgramBinary::packVaryings): (gl::ProgramBinary::linkVaryings): (gl::ProgramBinary::link): (gl::ProgramBinary::linkAttributes): (gl::ProgramBinary::linkUniforms): (gl::ProgramBinary::defineUniform): (gl::ProgramBinary::createUniform): (gl::ProgramBinary::decorateAttribute): (gl::ProgramBinary::undecorateUniform): (gl::ProgramBinary::applyUniformnbv): (gl::ProgramBinary::applyUniformnfv): (gl::ProgramBinary::applyUniform1iv): (gl::ProgramBinary::applyUniform2iv): (gl::ProgramBinary::applyUniform3iv): (gl::ProgramBinary::applyUniform4iv): (gl::ProgramBinary::applyUniformniv): (gl::ProgramBinary::isValidated): (gl::ProgramBinary::getActiveAttribute): (gl::ProgramBinary::getActiveAttributeCount): (gl::ProgramBinary::getActiveAttributeMaxLength): (gl::ProgramBinary::getActiveUniform): (gl::ProgramBinary::getActiveUniformCount): (gl::ProgramBinary::getActiveUniformMaxLength): (gl::ProgramBinary::validate): (gl::ProgramBinary::validateSamplers): (gl::ProgramBinary::getDxDepthRangeLocation): (gl::ProgramBinary::getDxDepthLocation): (gl::ProgramBinary::getDxCoordLocation): (gl::ProgramBinary::getDxHalfPixelSizeLocation): (gl::ProgramBinary::getDxFrontCCWLocation): (gl::ProgramBinary::getDxPointsOrLinesLocation): * src/libGLESv2/ProgramBinary.h: Added. (gl): (Uniform): (gl::Uniform::RegisterInfo::RegisterInfo): (RegisterInfo): (gl::Uniform::RegisterInfo::set): (UniformLocation): (ProgramBinary): (Sampler): * src/libGLESv2/Renderbuffer.cpp: (gl): (gl::RenderbufferTexture2D::RenderbufferTexture2D): (gl::RenderbufferTexture2D::~RenderbufferTexture2D): (gl::RenderbufferTexture2D::addProxyRef): (gl::RenderbufferTexture2D::releaseProxy): (gl::RenderbufferTexture2D::getRenderTarget): (gl::RenderbufferTexture2D::getDepthStencil): (gl::RenderbufferTexture2D::getWidth): (gl::RenderbufferTexture2D::getHeight): (gl::RenderbufferTexture2D::getInternalFormat): (gl::RenderbufferTexture2D::getD3DFormat): (gl::RenderbufferTexture2D::getSamples): (gl::RenderbufferTexture2D::getSerial): (gl::RenderbufferTextureCubeMap::RenderbufferTextureCubeMap): (gl::RenderbufferTextureCubeMap::~RenderbufferTextureCubeMap): (gl::RenderbufferTextureCubeMap::addProxyRef): (gl::RenderbufferTextureCubeMap::releaseProxy): (gl::RenderbufferTextureCubeMap::getRenderTarget): (gl::RenderbufferTextureCubeMap::getDepthStencil): (gl::RenderbufferTextureCubeMap::getWidth): (gl::RenderbufferTextureCubeMap::getHeight): (gl::RenderbufferTextureCubeMap::getInternalFormat): (gl::RenderbufferTextureCubeMap::getD3DFormat): (gl::RenderbufferTextureCubeMap::getSamples): (gl::RenderbufferTextureCubeMap::getSerial): (gl::DepthStencilbuffer::getDepthStencil): * src/libGLESv2/Renderbuffer.h: (gl): (RenderbufferTexture2D): (RenderbufferTextureCubeMap): * src/libGLESv2/Shader.cpp: (gl::Shader::getInfoLog): (gl::Shader::getSourceImpl): * src/libGLESv2/Shader.h: (Shader): (VertexShader): * src/libGLESv2/Texture.cpp: (gl::ConvertTextureFormatType): (gl::IsTextureFormatRenderable): (gl::GetTextureUsage): (gl): (gl::Image::createSurface): (gl::Image::updateSurface): (gl::Image::loadData): (gl::Image::loadAlphaData): (gl::Image::loadAlphaDataSSE2): (gl::Image::loadAlphaFloatData): (gl::Image::loadAlphaHalfFloatData): (gl::Image::loadLuminanceData): (gl::Image::loadLuminanceFloatData): (gl::Image::loadLuminanceHalfFloatData): (gl::Image::loadLuminanceAlphaData): (gl::Image::loadLuminanceAlphaFloatData): (gl::Image::loadLuminanceAlphaHalfFloatData): (gl::Image::loadRGBUByteData): (gl::Image::loadRGB565Data): (gl::Image::loadRGBFloatData): (gl::Image::loadRGBHalfFloatData): (gl::Image::loadRGBAUByteDataSSE2): (gl::Image::loadRGBAUByteData): (gl::Image::loadRGBA4444Data): (gl::Image::loadRGBA5551Data): (gl::Image::loadRGBAFloatData): (gl::Image::loadRGBAHalfFloatData): (gl::Image::loadBGRAData): (gl::Image::loadCompressedData): (gl::Image::copy): (gl::TextureStorage::TextureStorage): (gl::TextureStorage::isRenderTarget): (gl::TextureStorage::getUsage): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::TextureStorage2D::TextureStorage2D): (gl::Texture2D::getInternalFormat): (gl::Texture2D::getD3DFormat): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::storage): (gl::Texture2D::isSamplerComplete): (gl::Texture2D::isCompressed): (gl::Texture2D::isDepth): (gl::Texture2D::createTexture): (gl::Texture2D::convertToRenderTarget): (gl::Texture2D::getRenderbuffer): (gl::Texture2D::getRenderTarget): (gl::Texture2D::getDepthStencil): (gl::TextureStorageCubeMap::TextureStorageCubeMap): (gl::TextureCubeMap::getWidth): (gl::TextureCubeMap::getHeight): (gl::TextureCubeMap::getInternalFormat): (gl::TextureCubeMap::getD3DFormat): (gl::TextureCubeMap::isSamplerComplete): (gl::TextureCubeMap::isCompressed): (gl::TextureCubeMap::createTexture): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::storage): (gl::TextureCubeMap::getRenderbuffer): * src/libGLESv2/Texture.h: (Image): (TextureStorage): (Texture): (TextureStorage2D): (Texture2D): (TextureStorageCubeMap): (TextureCubeMap): * src/libGLESv2/VertexDataManager.cpp: (gl::VertexDataManager::prepareVertexData): * src/libGLESv2/libGLESv2.cpp: (checkTextureFormatType): (validateSubImageParams2D): (validateSubImageParamsCube): * src/libGLESv2/libGLESv2.vcproj: * src/libGLESv2/mathutil.h: (gl): * src/libGLESv2/utilities.cpp: (gl::IsDepthTexture): (gl): (gl::ComputePixelSize): (gl::ExtractFormat): (gl::ExtractType): (es2dx::ConvertCubeFace): (es2dx::ConvertRenderbufferFormat): (dx2es::GetStencilSize): (dx2es::GetDepthSize): (dx2es::IsDepthTextureFormat): (dx2es): (dx2es::IsStencilTextureFormat): (dx2es::ConvertDepthStencilFormat): * src/libGLESv2/utilities.h: (gl): (dx2es): 2012-07-11 Mark Rowe Build against the latest SDK when targeting older OS X versions. Reviewed by Dan Bernstein. The deployment target is already set to the version that we're targeting, and it's that setting which determines which functionality from the SDK is available to us. * Configurations/Base.xcconfig: 2012-06-22 Joshua Netterfield [BlackBerry] Sanitize GLSL code using ANGLE. BlackBerry port does not sanitize GLSL code with ANGLE https://bugs.webkit.org/show_bug.cgi?id=89583 Reviewed by Rob Buis. * src/compiler/osinclude.h: Recognises QNX as POSIX 2012-03-26 Dean Jackson Update ANGLE in WebKit https://bugs.webkit.org/show_bug.cgi?id=81717 Reviewed by Kenneth Russell. Update angleproject to r1009. Synced the source directory between the angle repository and WebKit. Ran the OS X Lion version of Bison over the glslang.l input which generates a slightly different output than angle provided. * include/EGL/eglext.h: * include/GLES2/gl2ext.h: * include/GLSLANG/ShaderLang.h: * src/common/RefCountObject.cpp: Renamed from Source/ThirdParty/ANGLE/src/libGLESv2/RefCountObject.cpp. (RefCountObject::RefCountObject): (RefCountObject::~RefCountObject): (RefCountObject::addRef): (RefCountObject::release): (RefCountObjectBindingPointer::set): * src/common/RefCountObject.h: Renamed from Source/ThirdParty/ANGLE/src/libGLESv2/RefCountObject.h. (RefCountObject): (RefCountObject::id): (RefCountObjectBindingPointer): (RefCountObjectBindingPointer::RefCountObjectBindingPointer): (RefCountObjectBindingPointer::~RefCountObjectBindingPointer): (RefCountObjectBindingPointer::get): (RefCountObjectBindingPointer::id): (RefCountObjectBindingPointer::operator ! ): (BindingPointer): (BindingPointer::set): (BindingPointer::get): (BindingPointer::operator -> ): * src/common/debug.cpp: (gl::output): * src/common/version.h: * src/compiler/BaseTypes.h: * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::~TCompiler): (TCompiler::mapLongVariableNames): * src/compiler/ConstantUnion.h: (ConstantUnion::ConstantUnion): (ConstantUnion::operator==): (ConstantUnion::operator>): (ConstantUnion::operator<): * src/compiler/Intermediate.cpp: (TIntermConstantUnion::fold): * src/compiler/MapLongVariableNames.cpp: (LongNameMap::LongNameMap): (LongNameMap::~LongNameMap): (LongNameMap::GetInstance): (LongNameMap::Release): (LongNameMap::Find): (LongNameMap::Insert): (LongNameMap::Size): (MapLongVariableNames::MapLongVariableNames): (MapLongVariableNames::visitSymbol): (MapLongVariableNames::mapGlobalLongName): * src/compiler/MapLongVariableNames.h: (LongNameMap): (MapLongVariableNames): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitSymbol): (sh::OutputHLSL::visitUnary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::typeString): (sh::OutputHLSL::addConstructor): (sh::OutputHLSL::decorateUniform): * src/compiler/OutputHLSL.h: (OutputHLSL): * src/compiler/PoolAlloc.cpp: (TAllocation::checkGuardBlock): * src/compiler/ShHandle.h: (TCompiler): * src/compiler/SymbolTable.cpp: * src/compiler/SymbolTable.h: (TSymbolTable): (TSymbolTable::getOuterLevel): * src/compiler/VariableInfo.cpp: (getVariableDataType): * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (yy_buffer_state): (yyguts_t): (input): (yyensure_buffer_stack): (yy_scan_bytes): (yyget_leng): * src/compiler/glslang_tab.cpp: * src/compiler/osinclude.h: * src/compiler/preprocessor/cpp.c: * src/compiler/preprocessor/memory.c: * src/compiler/preprocessor/new/Context.cpp: Added. (isMacroNameReserved): (pp): (pp::Context::Context): (pp::Context::~Context): (pp::Context::init): (pp::Context::process): (pp::Context::defineMacro): (pp::Context::undefineMacro): (pp::Context::isMacroDefined): (pp::Context::reset): (pp::Context::defineBuiltInMacro): * src/compiler/preprocessor/new/Context.h: Added. (pp): (Context): (pp::Context::lexer): (pp::Context::output): * src/compiler/preprocessor/new/Input.cpp: Added. (pp): (pp::Input::Input): (pp::Input::eof): (pp::Input::read): (pp::Input::getChar): (pp::Input::peekChar): (pp::Input::switchToNextString): (pp::Input::isStringEmpty): (pp::Input::stringLength): * src/compiler/preprocessor/new/Input.h: Added. (pp): (Input): (pp::Input::error): (pp::Input::stringIndex): * src/compiler/preprocessor/new/Macro.cpp: Added. (pp): (pp::Macro::Macro): (pp::Macro::~Macro): * src/compiler/preprocessor/new/Macro.h: Added. (pp): (Macro): (pp::Macro::type): (pp::Macro::identifier): (pp::Macro::parameters): (pp::Macro::replacements): * src/compiler/preprocessor/new/Preprocessor.cpp: Added. (pp): (pp::Preprocessor::Preprocessor): (pp::Preprocessor::~Preprocessor): (pp::Preprocessor::init): (pp::Preprocessor::process): (pp::Preprocessor::reset): * src/compiler/preprocessor/new/Preprocessor.h: Added. (pp): (Preprocessor): (pp::Preprocessor::begin): (pp::Preprocessor::end): * src/compiler/preprocessor/new/Token.cpp: Added. (pp): (pp::Token::encodeLocation): (pp::Token::decodeLocation): (pp::Token::Token): (pp::Token::~Token): (pp::operator<<): * src/compiler/preprocessor/new/Token.h: Added. (pp): (Token): (pp::Token::location): (pp::Token::type): (pp::Token::value): * src/compiler/preprocessor/new/generate_parser.sh: Added. * src/compiler/preprocessor/new/pp.l: Added. * src/compiler/preprocessor/new/pp.y: Added. * src/compiler/preprocessor/new/pp_lex.cpp: Added. (yy_buffer_state): (yy_trans_info): (yyguts_t): (yy_get_previous_state): (yy_try_NUL_trans): (input): (pprestart): (pp_switch_to_buffer): (pp_load_buffer_state): (pp_create_buffer): (pp_delete_buffer): (pp_init_buffer): (pp_flush_buffer): (pppush_buffer_state): (pppop_buffer_state): (ppensure_buffer_stack): (pp_scan_buffer): (pp_scan_string): (pp_scan_bytes): (yy_push_state): (yy_pop_state): (yy_top_state): (yy_fatal_error): (ppget_extra): (ppget_lineno): (ppget_column): (ppget_in): (ppget_out): (ppget_leng): (ppget_text): (ppset_extra): (ppset_lineno): (ppset_column): (ppset_in): (ppset_out): (ppget_debug): (ppset_debug): (ppget_lval): (ppset_lval): (ppget_lloc): (ppset_lloc): (pplex_init): (pplex_init_extra): (yy_init_globals): (pplex_destroy): (yy_flex_strncpy): (yy_flex_strlen): (ppalloc): (pprealloc): (ppfree): (extractMacroName): (pp): (pp::Context::readInput): (pp::Context::initLexer): (pp::Context::destroyLexer): * src/compiler/preprocessor/new/pp_tab.cpp: Added. (YYLTYPE): (yysyntax_error): (yyerror): (pushConditionalBlock): (popConditionalBlock): (pp::Context::parse): * src/compiler/preprocessor/new/pp_tab.h: Added. (YYLTYPE): * src/compiler/preprocessor/new/stl_utils.h: Added. (pp): (Delete): (pp::Delete::operator()): (DeleteSecond): (pp::DeleteSecond::operator()): * src/compiler/preprocessor/new/token_type.h: Added. * src/compiler/preprocessor/scanner.c: (yylex_CPP): * src/compiler/preprocessor/symbols.c: * src/compiler/preprocessor/tokens.c: * src/libEGL/Config.cpp: (egl::ConfigSet::getConfigs): * src/libEGL/Display.cpp: (egl::Display::initialize): (egl::Display::terminate): (egl::Display::restoreLostDevice): (egl::Display::sync): (egl): (egl::Display::allocateEventQuery): (egl::Display::freeEventQuery): (egl::Display::getFloat32TextureSupport): (egl::Display::getFloat16TextureSupport): (egl::Display::getEventQuerySupport): (egl::Display::initExtensionString): (egl::Display::shareHandleSupported): (egl::Display::getOcclusionQuerySupport): (egl::Display::getInstancingSupport): * src/libEGL/Display.h: (Display): (egl::Display::isD3d9ExDevice): * src/libEGL/Surface.cpp: (egl::Surface::resetSwapChain): * src/libEGL/libEGL.cpp: * src/libEGL/libEGL.vcproj: * src/libGLESv2/Blit.cpp: (gl::Blit::setCommonBlitState): * src/libGLESv2/Buffer.h: (Buffer): * src/libGLESv2/Context.cpp: (gl::Context::Context): (gl::Context::~Context): (gl::Context::makeCurrent): (gl::Context::getActiveQuery): (gl): (gl::Context::createFence): (gl::Context::createQuery): (gl::Context::deleteQuery): (gl::Context::beginQuery): (gl::Context::endQuery): (gl::Context::getQuery): (gl::Context::applyVertexBuffer): (gl::Context::applyIndexBuffer): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::sync): (gl::Context::drawLineLoop): (gl::Context::supportsOcclusionQueries): (gl::Context::supportsInstancing): (gl::Context::setVertexAttribDivisor): (gl::Context::initExtensionString): (gl::VertexDeclarationCache::applyDeclaration): (gl::VertexDeclarationCache::markStateDirty): * src/libGLESv2/Context.h: (gl): (gl::VertexAttribute::VertexAttribute): (State): (VertexDeclarationCache): (Context): * src/libGLESv2/Fence.cpp: (gl::Fence::Fence): (gl::Fence::~Fence): (gl::Fence::setFence): * src/libGLESv2/Fence.h: (egl): (Fence): * src/libGLESv2/Framebuffer.cpp: (gl::Framebuffer::lookupRenderbuffer): (gl::Framebuffer::detachTexture): (gl::Framebuffer::completeness): * src/libGLESv2/Framebuffer.h: * src/libGLESv2/IndexDataManager.cpp: (gl::IndexDataManager::IndexDataManager): (gl::IndexDataManager::~IndexDataManager): (gl::computeRange): (gl::IndexDataManager::prepareIndexData): (gl::IndexDataManager::getCountingIndices): (gl): * src/libGLESv2/IndexDataManager.h: (IndexDataManager): * src/libGLESv2/Program.cpp: (gl::Program::getUniformLocation): (gl::Program::setUniform1fv): (gl::Program::setUniform2fv): (gl::Program::setUniform3fv): (gl::Program::setUniform4fv): (gl::Program::setUniform1iv): (gl::Program::setUniform2iv): (gl::Program::setUniform3iv): (gl::Program::setUniform4iv): (gl::Program::packVaryings): (gl::Program::linkVaryings): (gl::Program::defineUniform): (gl::Program::createUniform): (gl::Program::applyUniformnbv): (gl::Program::applyUniform1iv): (gl::Program::applyUniform2iv): (gl::Program::applyUniform3iv): (gl::Program::applyUniform4iv): (gl::Program::getInfoLog): * src/libGLESv2/Program.h: (Program): * src/libGLESv2/Query.cpp: Added. (gl): (gl::Query::Query): (gl::Query::~Query): (gl::Query::begin): (gl::Query::end): (gl::Query::getResult): (gl::Query::isResultAvailable): (gl::Query::getType): (gl::Query::testQuery): * src/libGLESv2/Query.h: Added. (gl): (Query): * src/libGLESv2/Renderbuffer.cpp: (gl): (gl::RenderbufferInterface::addProxyRef): (gl::RenderbufferInterface::releaseProxy): (gl::RenderbufferTexture::RenderbufferTexture): (gl::RenderbufferTexture::~RenderbufferTexture): (gl::RenderbufferTexture::addProxyRef): (gl::RenderbufferTexture::releaseProxy): (gl::Renderbuffer::addRef): (gl::Renderbuffer::release): * src/libGLESv2/Renderbuffer.h: (gl): (RenderbufferInterface): (RenderbufferTexture): (Renderbuffer): * src/libGLESv2/Shader.cpp: (gl::Shader::Shader): (gl::Shader::getInfoLog): (gl::Shader::getSourceImpl): (gl): (gl::Shader::initializeCompiler): (gl::Shader::parseVaryings): (gl::Shader::uncompile): (gl::Shader::compileToHLSL): (gl::VertexShader::uncompile): (gl::VertexShader::compile): (gl::VertexShader::parseAttributes): (gl::FragmentShader::compile): * src/libGLESv2/Shader.h: (Shader): (VertexShader): * src/libGLESv2/Texture.cpp: (gl::Texture2D::Texture2D): (gl::Texture2D::~Texture2D): (gl): (gl::Texture2D::addProxyRef): (gl::Texture2D::releaseProxy): (gl::Texture2D::getRenderbuffer): (gl::TextureCubeMap::TextureCubeMap): (gl::TextureCubeMap::~TextureCubeMap): (gl::TextureCubeMap::addProxyRef): (gl::TextureCubeMap::releaseProxy): (gl::TextureCubeMap::isSamplerComplete): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::getRenderbuffer): * src/libGLESv2/Texture.h: (Texture): (Texture2D): (TextureCubeMap): * src/libGLESv2/VertexDataManager.cpp: (gl::VertexDataManager::writeAttributeData): (gl::VertexDataManager::prepareVertexData): (gl::VertexDataManager::spaceRequired): (gl): * src/libGLESv2/VertexDataManager.h: (TranslatedAttribute): (VertexDataManager): * src/libGLESv2/libGLESv2.cpp: * src/libGLESv2/libGLESv2.def: * src/libGLESv2/libGLESv2.vcproj: * src/libGLESv2/utilities.cpp: (gl::IsInternalTextureTarget): * src/libGLESv2/utilities.h: (gl): 2012-03-09 Ashod Nakashian Bash scripts should support LF endings only https://bugs.webkit.org/show_bug.cgi?id=79509 Reviewed by David Kilzer. * src/compiler/generate_parser.sh: Added property svn:eol-style. 2012-02-21 Sam Weinig Attempt to fix the Snow Leopard build. * Configurations/Base.xcconfig: 2012-02-21 Sam Weinig Use libc++ when building with Clang on Mac https://bugs.webkit.org/show_bug.cgi?id=78981 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2012-01-07 Chris Marrin Fixed a warning in GTK build of ANGLE Unreviewed. * src/compiler/DetectRecursion.cpp: (DetectRecursion::~DetectRecursion): 2012-01-06 Mark Rowe Regenerate a few files with a more appropriate version of bison. Rubber-stamped by Dan Bernstein. * src/compiler/glslang.l: Tweak the input so that it generates code that compiles without warnings. * src/compiler/glslang_lex.cpp: * src/compiler/glslang_tab.cpp: * src/compiler/glslang_tab.h: 2012-01-06 Chris Marrin Update ANGLE in WebKit tree https://bugs.webkit.org/show_bug.cgi?id=75753 Reviewed by Simon Fraser. Updated ANGLE to r939. Fixed a compiler error (missing case in switch statement) and added 5 new files to xcodeproj. Other than that it is a straight copy of the files from the ANGLE repository. * ANGLE.xcodeproj/project.pbxproj: * include/EGL/eglext.h: * include/EGL/eglplatform.h: * include/GLES2/gl2ext.h: * include/GLSLANG/ShaderLang.h: * src/common/debug.cpp: (gl::output): (gl::trace): (gl::perfActive): (gl::ScopedPerfEventHelper::ScopedPerfEventHelper): (gl::ScopedPerfEventHelper::~ScopedPerfEventHelper): * src/common/version.h: * src/compiler/BaseTypes.h: (getBasicString): * src/compiler/BuiltInFunctionEmulator.cpp: Added. (BuiltInFunctionEmulator::BuiltInFunctionEmulator): (BuiltInFunctionEmulator::SetFunctionCalled): (BuiltInFunctionEmulator::OutputEmulatedFunctionDefinition): (BuiltInFunctionEmulator::IdentifyFunction): (BuiltInFunctionEmulator::MarkBuiltInFunctionsForEmulation): (BuiltInFunctionEmulator::Cleanup): (BuiltInFunctionEmulator::GetEmulatedFunctionName): * src/compiler/BuiltInFunctionEmulator.h: Added. * src/compiler/Compiler.cpp: (TCompiler::TCompiler): (TCompiler::compile): (TCompiler::clearResults): (TCompiler::detectRecursion): (TCompiler::getMappedNameMaxLength): (TCompiler::getBuiltInFunctionEmulator): * src/compiler/DetectRecursion.cpp: Added. (DetectRecursion::FunctionNode::FunctionNode): (DetectRecursion::FunctionNode::getName): (DetectRecursion::FunctionNode::addCallee): (DetectRecursion::FunctionNode::detectRecursion): (DetectRecursion::DetectRecursion): (DetectRecursion::~DetectRecursion): (DetectRecursion::visitAggregate): (DetectRecursion::detectRecursion): (DetectRecursion::findFunctionByName): * src/compiler/DetectRecursion.h: Added. * src/compiler/ExtensionBehavior.h: * src/compiler/ForLoopUnroll.cpp: (ForLoopUnroll::MarkForLoopsWithIntegerIndicesForUnrolling): * src/compiler/ForLoopUnroll.h: * src/compiler/Initialize.cpp: (BuiltInFunctionsCommon): (BuiltInFunctionsVertex): (BuiltInFunctionsFragment): (TBuiltIns::initialize): (IdentifyBuiltIns): (InitExtensionBehavior): * src/compiler/MapLongVariableNames.cpp: (MapLongVariableNames::MapLongVariableNames): (MapLongVariableNames::visitSymbol): (MapLongVariableNames::mapVaryingLongName): * src/compiler/MapLongVariableNames.h: * src/compiler/OutputGLSLBase.cpp: (TOutputGLSLBase::visitUnary): (TOutputGLSLBase::visitAggregate): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitSymbol): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::addConstructor): (sh::OutputHLSL::decorate): (sh::OutputHLSL::decorateUniform): * src/compiler/OutputHLSL.h: * src/compiler/ParseHelper.cpp: (TParseContext::recover): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::supportsExtension): (TParseContext::enterStructDeclaration): (TParseContext::exitStructDeclaration): (TParseContext::structNestingErrorCheck): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): * src/compiler/PoolAlloc.h: (pool_allocator::pool_allocator): (pool_allocator::operator=): (pool_allocator::setAllocator): (pool_allocator::getAllocator): * src/compiler/ShHandle.h: * src/compiler/ShaderLang.cpp: (checkActiveUniformAndAttribMaxLengths): (checkMappedNameMaxLength): (getVariableInfo): (ShInitBuiltInResources): (ShGetInfo): * src/compiler/SymbolTable.cpp: (TType::computeDeepestStructNesting): * src/compiler/TranslatorESSL.cpp: (TranslatorESSL::translate): (TranslatorESSL::writeExtensionBehavior): * src/compiler/TranslatorGLSL.cpp: (TranslatorGLSL::translate): * src/compiler/Types.h: (TType::TType): (TType::copyType): (TType::setStruct): (TType::getDeepestStructNesting): * src/compiler/UnfoldSelect.cpp: (sh::UnfoldSelect::traverse): (sh::UnfoldSelect::visitSelection): (sh::UnfoldSelect::visitLoop): (sh::UnfoldSelect::getNextTemporaryIndex): * src/compiler/UnfoldSelect.h: * src/compiler/ValidateLimitations.cpp: * src/compiler/ValidateLimitations.h: * src/compiler/VariableInfo.cpp: (getVariableDataType): * src/compiler/generate_glslang_lexer.sh: Removed. * src/compiler/generate_glslang_parser.sh: Removed. * src/compiler/generate_parser.sh: Added. * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: (yy_get_previous_state): (yy_try_NUL_trans): * src/compiler/glslang_tab.cpp: * src/compiler/glslang_tab.h: * src/compiler/intermOut.cpp: (TOutputTraverser::visitAggregate): * src/compiler/intermediate.h: (TIntermUnary::TIntermUnary): (TIntermUnary::setUseEmulatedFunction): (TIntermUnary::getUseEmulatedFunction): (TIntermAggregate::TIntermAggregate): (TIntermAggregate::setUseEmulatedFunction): (TIntermAggregate::getUseEmulatedFunction): * src/compiler/osinclude.h: * src/compiler/ossource_posix.cpp: (OS_AllocTLSIndex): (OS_SetTLSValue): (OS_FreeTLSIndex): * src/compiler/preprocessor/atom.c: (GrowAtomTable): * src/compiler/preprocessor/length_limits.h: Added. * src/compiler/preprocessor/scanner.h: * src/libEGL/Display.cpp: (egl::Display::getDisplay): (egl::Display::Display): (egl::Display::~Display): (egl::Display::initialize): (egl::Display::terminate): (egl::Display::startScene): (egl::Display::endScene): (egl::Display::createDevice): (egl::Display::initializeDevice): (egl::Display::resetDevice): (egl::Display::createWindowSurface): (egl::Display::createOffscreenSurface): (egl::Display::createContext): (egl::Display::restoreLostDevice): (egl::Display::notifyDeviceLost): (egl::Display::isDeviceLost): (egl::Display::testDeviceLost): (egl::Display::testDeviceResettable): (egl::Display::getDXT1TextureSupport): (egl::Display::getDXT3TextureSupport): (egl::Display::getDXT5TextureSupport): (egl::Display::getFloat32TextureSupport): (egl::Display::getFloat16TextureSupport): (egl::Display::getTexturePool): (egl::Display::initExtensionString): * src/libEGL/Display.h: * src/libEGL/Surface.cpp: (egl::Surface::Surface): (egl::Surface::initialize): (egl::Surface::resetSwapChain): (egl::Surface::subclassWindow): (egl::Surface::unsubclassWindow): (egl::Surface::swap): (egl::Surface::postSubBuffer): (egl::Surface::isPostSubBufferSupported): * src/libEGL/Surface.h: * src/libEGL/libEGL.cpp: * src/libEGL/libEGL.rc: * src/libEGL/libEGL.vcproj: * src/libGLESv2/Buffer.cpp: (gl::Buffer::bufferSubData): * src/libGLESv2/Context.cpp: (gl::Context::Context): (gl::Context::makeCurrent): (gl::Context::markAllStateDirty): (gl::Context::markContextLost): (gl::Context::isContextLost): (gl::Context::setPackReverseRowOrder): (gl::Context::getPackReverseRowOrder): (gl::Context::deleteProgram): (gl::Context::getDrawFramebuffer): (gl::Context::bindDrawFramebuffer): (gl::Context::useProgram): (gl::Context::setFramebufferZero): (gl::Context::getCurrentProgram): (gl::Context::getBooleanv): (gl::Context::getIntegerv): (gl::Context::getQueryParameterInfo): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::applyVertexBuffer): (gl::Context::applyIndexBuffer): (gl::Context::applyShaders): (gl::Context::applyTextures): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::sync): (gl::Context::drawClosingLine): (gl::Context::getResetStatus): (gl::Context::isResetNotificationEnabled): (gl::Context::supportsDXT1Textures): (gl::Context::supportsDXT3Textures): (gl::Context::supportsDXT5Textures): (gl::Context::supportsFloat32Textures): (gl::Context::supportsFloat32LinearFilter): (gl::Context::supportsFloat32RenderableTextures): (gl::Context::supportsFloat16Textures): (gl::Context::supportsFloat16LinearFilter): (gl::Context::supportsFloat16RenderableTextures): (gl::Context::initExtensionString): (gl::Context::initRendererString): (gl::Context::getRendererString): (gl::Context::blitFramebuffer): (gl::VertexDeclarationCache::applyDeclaration): (gl::VertexDeclarationCache::markStateDirty): * src/libGLESv2/Context.h: * src/libGLESv2/Fence.cpp: (gl::Fence::testFence): (gl::Fence::getFenceiv): * src/libGLESv2/Framebuffer.cpp: (gl::Framebuffer::setColorbuffer): (gl::Framebuffer::setDepthbuffer): (gl::Framebuffer::setStencilbuffer): (gl::Framebuffer::getColorbuffer): (gl::Framebuffer::getDepthbuffer): (gl::Framebuffer::getStencilbuffer): (gl::Framebuffer::hasStencil): (gl::Framebuffer::completeness): (gl::DefaultFramebuffer::DefaultFramebuffer): * src/libGLESv2/Framebuffer.h: * src/libGLESv2/IndexDataManager.cpp: (gl::IndexDataManager::prepareIndexData): (gl::IndexBuffer::IndexBuffer): (gl::IndexBuffer::getSerial): (gl::IndexBuffer::issueSerial): (gl::StreamingIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::lookupRange): (gl::StaticIndexBuffer::addRange): * src/libGLESv2/IndexDataManager.h: (gl::StaticIndexBuffer::IndexRange::operator<): * src/libGLESv2/Program.cpp: (gl::Uniform::Uniform): (gl::Uniform::isArray): (gl::UniformLocation::UniformLocation): (gl::Program::Program): (gl::Program::detachShader): (gl::Program::getUsedSamplerRange): (gl::Program::getSamplerMapping): (gl::Program::getUniformLocation): (gl::Program::setUniform1fv): (gl::Program::setUniform2fv): (gl::Program::setUniform3fv): (gl::transposeMatrix): (gl::Program::setUniformMatrix2fv): (gl::Program::setUniformMatrix3fv): (gl::Program::setUniformMatrix4fv): (gl::Program::getUniformfv): (gl::Program::getUniformiv): (gl::Program::applyUniforms): (gl::Program::compileToBinary): (gl::Program::linkVaryings): (gl::Program::link): (gl::Program::defineUniform): (gl::Program::createUniform): (gl::Program::decorateAttribute): (gl::Program::undecorateUniform): (gl::Program::applyUniformnbv): (gl::Program::applyUniformnfv): (gl::Program::applyUniform1iv): (gl::Program::applyUniform2iv): (gl::Program::applyUniform3iv): (gl::Program::applyUniform4iv): (gl::Program::applyUniformniv): (gl::Program::appendToInfoLogSanitized): (gl::Program::unlink): (gl::Program::getActiveUniform): (gl::Program::getActiveUniformCount): (gl::Program::getActiveUniformMaxLength): (gl::Program::validateSamplers): (gl::Program::initializeConstantHandles): (gl::Program::getDxCoordLocation): * src/libGLESv2/Program.h: * src/libGLESv2/Renderbuffer.cpp: (gl::RenderbufferInterface::RenderbufferInterface): (gl::RenderbufferInterface::getRedSize): (gl::RenderbufferInterface::getGreenSize): (gl::RenderbufferInterface::getBlueSize): (gl::RenderbufferInterface::getAlphaSize): (gl::RenderbufferInterface::getDepthSize): (gl::RenderbufferInterface::getStencilSize): (gl::RenderbufferTexture::RenderbufferTexture): (gl::RenderbufferTexture::~RenderbufferTexture): (gl::RenderbufferTexture::getRenderTarget): (gl::RenderbufferTexture::getDepthStencil): (gl::RenderbufferTexture::getWidth): (gl::RenderbufferTexture::getHeight): (gl::RenderbufferTexture::getInternalFormat): (gl::RenderbufferTexture::getD3DFormat): (gl::RenderbufferTexture::getSamples): (gl::RenderbufferTexture::getSerial): (gl::Renderbuffer::Renderbuffer): (gl::Renderbuffer::~Renderbuffer): (gl::Renderbuffer::getRenderTarget): (gl::Renderbuffer::getDepthStencil): (gl::Renderbuffer::getWidth): (gl::Renderbuffer::getHeight): (gl::Renderbuffer::getInternalFormat): (gl::Renderbuffer::getD3DFormat): (gl::Renderbuffer::getRedSize): (gl::Renderbuffer::getGreenSize): (gl::Renderbuffer::getBlueSize): (gl::Renderbuffer::getAlphaSize): (gl::Renderbuffer::getDepthSize): (gl::Renderbuffer::getStencilSize): (gl::Renderbuffer::getSamples): (gl::Renderbuffer::getSerial): (gl::Renderbuffer::setStorage): (gl::RenderbufferStorage::getD3DFormat): (gl::RenderbufferStorage::issueCubeSerials): (gl::Colorbuffer::Colorbuffer): (gl::Colorbuffer::getRenderTarget): (gl::Depthbuffer::Depthbuffer): (gl::Stencilbuffer::Stencilbuffer): * src/libGLESv2/Renderbuffer.h: (gl::RenderbufferInterface::~RenderbufferInterface): * src/libGLESv2/Shader.cpp: (gl::Shader::getTranslatedSourceLength): (gl::Shader::getSourceImpl): (gl::Shader::getSource): (gl::Shader::getTranslatedSource): * src/libGLESv2/Shader.h: * src/libGLESv2/Texture.cpp: (gl::ConvertTextureFormatType): (gl::IsTextureFormatRenderable): (gl::Image::Image): (gl::Image::~Image): (gl::Image::redefine): (gl::Image::createSurface): (gl::Image::lock): (gl::Image::unlock): (gl::Image::isRenderableFormat): (gl::Image::getD3DFormat): (gl::Image::getSurface): (gl::Image::setManagedSurface): (gl::Image::updateSurface): (gl::Image::loadData): (gl::Image::loadAlphaData): (gl::Image::loadAlphaFloatData): (gl::Image::loadAlphaHalfFloatData): (gl::Image::loadLuminanceData): (gl::Image::loadLuminanceFloatData): (gl::Image::loadLuminanceHalfFloatData): (gl::Image::loadLuminanceAlphaData): (gl::Image::loadLuminanceAlphaFloatData): (gl::Image::loadLuminanceAlphaHalfFloatData): (gl::Image::loadRGBUByteData): (gl::Image::loadRGB565Data): (gl::Image::loadRGBFloatData): (gl::Image::loadRGBHalfFloatData): (gl::Image::loadRGBAUByteDataSSE2): (gl::Image::loadRGBAUByteData): (gl::Image::loadRGBA4444Data): (gl::Image::loadRGBA5551Data): (gl::Image::loadRGBAFloatData): (gl::Image::loadRGBAHalfFloatData): (gl::Image::loadBGRAData): (gl::Image::loadCompressedData): (gl::FlipCopyDXT1BlockFull): (gl::FlipCopyDXT1BlockHalf): (gl::FlipCopyDXT3BlockFull): (gl::FlipCopyDXT3BlockHalf): (gl::FlipCopyDXT5BlockFull): (gl::FlipCopyDXT5BlockHalf): (gl::Image::loadDXT1Data): (gl::Image::loadDXT3Data): (gl::Image::loadDXT5Data): (gl::Image::copy): (gl::TextureStorage::TextureStorage): (gl::TextureStorage::~TextureStorage): (gl::TextureStorage::isRenderTarget): (gl::TextureStorage::isManaged): (gl::TextureStorage::getPool): (gl::TextureStorage::getTextureSerial): (gl::TextureStorage::issueTextureSerial): (gl::Texture::Texture): (gl::Texture::~Texture): (gl::Texture::setMinFilter): (gl::Texture::setMagFilter): (gl::Texture::setWrapS): (gl::Texture::setWrapT): (gl::Texture::setUsage): (gl::Texture::getMinFilter): (gl::Texture::getMagFilter): (gl::Texture::getWrapS): (gl::Texture::getWrapT): (gl::Texture::getUsage): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::Texture::getTexture): (gl::Texture::hasDirtyParameters): (gl::Texture::hasDirtyImages): (gl::Texture::resetDirty): (gl::Texture::getTextureSerial): (gl::Texture::getRenderTargetSerial): (gl::Texture::isImmutable): (gl::Texture::creationLevels): (gl::Texture::getBlitter): (gl::Texture::copyToRenderTarget): (gl::TextureStorage2D::TextureStorage2D): (gl::TextureStorage2D::~TextureStorage2D): (gl::TextureStorage2D::getSurfaceLevel): (gl::TextureStorage2D::getBaseTexture): (gl::TextureStorage2D::getRenderTargetSerial): (gl::Texture2D::Texture2D): (gl::Texture2D::~Texture2D): (gl::Texture2D::getWidth): (gl::Texture2D::getHeight): (gl::Texture2D::getInternalFormat): (gl::Texture2D::getType): (gl::Texture2D::redefineImage): (gl::Texture2D::setImage): (gl::Texture2D::bindTexImage): (gl::Texture2D::releaseTexImage): (gl::Texture2D::setCompressedImage): (gl::Texture2D::commitRect): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::storage): (gl::Texture2D::isSamplerComplete): (gl::Texture2D::isMipmapComplete): (gl::Texture2D::getBaseTexture): (gl::Texture2D::createTexture): (gl::Texture2D::updateTexture): (gl::Texture2D::convertToRenderTarget): (gl::Texture2D::generateMipmaps): (gl::Texture2D::getRenderbuffer): (gl::Texture2D::getRenderTarget): (gl::Texture2D::getStorage): (gl::TextureStorageCubeMap::TextureStorageCubeMap): (gl::TextureStorageCubeMap::~TextureStorageCubeMap): (gl::TextureStorageCubeMap::getCubeMapSurface): (gl::TextureStorageCubeMap::getBaseTexture): (gl::TextureStorageCubeMap::getRenderTargetSerial): (gl::TextureCubeMap::TextureCubeMap): (gl::TextureCubeMap::~TextureCubeMap): (gl::TextureCubeMap::getWidth): (gl::TextureCubeMap::getHeight): (gl::TextureCubeMap::getInternalFormat): (gl::TextureCubeMap::getType): (gl::TextureCubeMap::setCompressedImage): (gl::TextureCubeMap::commitRect): (gl::TextureCubeMap::subImage): (gl::TextureCubeMap::subImageCompressed): (gl::TextureCubeMap::isSamplerComplete): (gl::TextureCubeMap::isCubeComplete): (gl::TextureCubeMap::isMipmapCubeComplete): (gl::TextureCubeMap::getBaseTexture): (gl::TextureCubeMap::createTexture): (gl::TextureCubeMap::updateTexture): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::setImage): (gl::TextureCubeMap::redefineImage): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::storage): (gl::TextureCubeMap::generateMipmaps): (gl::TextureCubeMap::getRenderbuffer): (gl::TextureCubeMap::getRenderTarget): (gl::TextureCubeMap::getStorage): * src/libGLESv2/Texture.h: (gl::Image::markDirty): (gl::Image::markClean): (gl::Image::getWidth): (gl::Image::getHeight): (gl::Image::getFormat): (gl::Image::getType): (gl::Image::isDirty): * src/libGLESv2/VertexDataManager.cpp: (gl::elementsInBuffer): (gl::VertexDataManager::VertexDataManager): (gl::VertexDataManager::writeAttributeData): (gl::VertexDataManager::prepareVertexData): (gl::VertexBuffer::VertexBuffer): (gl::VertexBuffer::getSerial): (gl::VertexBuffer::issueSerial): (gl::StreamingVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::map): (gl::StaticVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::lookupAttribute): * src/libGLESv2/VertexDataManager.h: (gl::ArrayVertexBuffer::size): * src/libGLESv2/geometry/IndexDataManager.cpp: Removed. * src/libGLESv2/geometry/IndexDataManager.h: Removed. * src/libGLESv2/geometry/VertexDataManager.cpp: Removed. * src/libGLESv2/geometry/VertexDataManager.h: Removed. * src/libGLESv2/geometry/vertexconversion.h: Removed. * src/libGLESv2/libGLESv2.cpp: (validateSubImageParams): (validReadFormatType): (Extension::glBindTexImage): * src/libGLESv2/libGLESv2.def: * src/libGLESv2/libGLESv2.rc: * src/libGLESv2/libGLESv2.vcproj: * src/libGLESv2/main.cpp: (gl::getNonLostContext): (gl::checkDeviceLost): * src/libGLESv2/main.h: * src/libGLESv2/utilities.cpp: (gl::UniformExternalComponentCount): (gl::UniformInternalComponentCount): (gl::UniformComponentSize): (gl::UniformInternalSize): (gl::UniformExternalSize): (gl::ComputeCompressedSize): (gl::IsCompressed): (gl::ExtractFormat): (gl::ExtractType): (dx2es::IsFloat32Format): (dx2es::IsFloat16Format): * src/libGLESv2/utilities.h: (isDeviceLostError): 2011-11-11 Darin Adler * ANGLE.xcodeproj/project.pbxproj: Let a newer Xcode update this file. If an older Xcode downgrades this file and we have a risk of some kind of oscillating commit situation, please contact me so I know not to do this again. 2011-09-19 Adam Roben Let Xcode 4 do its thang with ANGLE.xcodeproj * ANGLE.xcodeproj/project.pbxproj: 2011-09-13 Anders Carlsson Disable C++ exceptions when building with clang https://bugs.webkit.org/show_bug.cgi?id=68031 Reviewed by Mark Rowe. * Configurations/Base.xcconfig: 2011-09-08 Andras Becsi [Qt] Build fails with strict compiler https://bugs.webkit.org/show_bug.cgi?id=67778 Reviewed by Csaba Osztrogonác. * src/compiler/glslang_lex.cpp: Regenerate with generate_glslang_lexer.sh using a newer flex to suppress warning and fix the build when using [-Werror=unused-result] 2011-08-12 Mark Rowe Be more forward-looking in the choice of compiler. Rubber-stamped by Jon Honeycutt. * Configurations/CompilerVersion.xcconfig: 2011-08-11 Renata Hodovan [Qt]Fix warnings after r92805. Reviewed by Csaba Osztrogonác. Control reached the end non-void functions. * src/compiler/ossource_posix.cpp: (OS_AllocTLSIndex): (OS_SetTLSValue): 2011-08-11 Renata Hodovan Build fix on Qt Windows 32-bit Release/Debug after r92805. Unreviewed. * src/compiler/ossource_posix.cpp: (OS_FreeTLSIndex): 2011-08-04 Mark Rowe Future-proof Xcode configuration settings. * Configurations/Base.xcconfig: * Configurations/CompilerVersion.xcconfig: * Configurations/DebugRelease.xcconfig: 2011-06-30 Mark Rowe Rubber-stamped by Dan Bernstein. ANGLE shouldn't try to use internal SDKs. It doesn't need them! * Configurations/Base.xcconfig: 2011-06-20 Zhenyao Mo Reviewed by Kenneth Russell. Update ANGLE to r696 https://bugs.webkit.org/show_bug.cgi?id=56396 * ANGLE.xcodeproj/project.pbxproj: * include/EGL/eglext.h: * include/GLSLANG/ShaderLang.h: * src/build_angle.xcodeproj/project.pbxproj: * src/common/debug.cpp: (gl::output): (gl::trace): (gl::perfActive): (gl::ScopedPerfEventHelper::ScopedPerfEventHelper): (gl::ScopedPerfEventHelper::~ScopedPerfEventHelper): * src/common/debug.h: * src/common/version.h: Added. * src/compiler/CodeGenGLSL.cpp: (ConstructCompiler): * src/compiler/CodeGenHLSL.cpp: (ConstructCompiler): * src/compiler/Compiler.cpp: (TCompiler::compile): (TCompiler::mapLongVariableNames): (TCompiler::getMappedNameMaxLength): (TCompiler::getExtensionBehavior): * src/compiler/ConstantUnion.h: (ConstantUnion::operator==): (ConstantUnion::operator>): (ConstantUnion::operator<): * src/compiler/ExtensionBehavior.h: (getBehaviorString): * src/compiler/ForLoopUnroll.cpp: Added. (ForLoopUnroll::FillLoopIndexInfo): (ForLoopUnroll::Step): (ForLoopUnroll::SatisfiesLoopCondition): (ForLoopUnroll::NeedsToReplaceSymbolWithValue): (ForLoopUnroll::GetLoopIndexValue): (ForLoopUnroll::Push): (ForLoopUnroll::Pop): (ForLoopUnroll::getLoopIncrement): (ForLoopUnroll::evaluateIntConstant): * src/compiler/ForLoopUnroll.h: Added. (ForLoopUnroll::ForLoopUnroll): * src/compiler/Initialize.cpp: (BuiltInFunctionsVertex): * src/compiler/MapLongVariableNames.cpp: Added. (MapLongVariableNames::MapLongVariableNames): (MapLongVariableNames::visitSymbol): (MapLongVariableNames::visitConstantUnion): (MapLongVariableNames::visitBinary): (MapLongVariableNames::visitUnary): (MapLongVariableNames::visitSelection): (MapLongVariableNames::visitAggregate): (MapLongVariableNames::visitLoop): (MapLongVariableNames::visitBranch): (MapLongVariableNames::mapVaryingLongName): * src/compiler/MapLongVariableNames.h: Added. * src/compiler/OutputESSL.cpp: Added. (TOutputESSL::TOutputESSL): (TOutputESSL::writeVariablePrecision): * src/compiler/OutputESSL.h: Added. * src/compiler/OutputGLSL.cpp: (TOutputGLSL::TOutputGLSL): (TOutputGLSL::writeVariablePrecision): * src/compiler/OutputGLSL.h: * src/compiler/OutputGLSLBase.cpp: Added. (TOutputGLSLBase::TOutputGLSLBase): (TOutputGLSLBase::writeTriplet): (TOutputGLSLBase::writeVariableType): (TOutputGLSLBase::writeFunctionParameters): (TOutputGLSLBase::writeConstantUnion): (TOutputGLSLBase::visitSymbol): (TOutputGLSLBase::visitConstantUnion): (TOutputGLSLBase::visitBinary): (TOutputGLSLBase::visitUnary): (TOutputGLSLBase::visitSelection): (TOutputGLSLBase::visitAggregate): (TOutputGLSLBase::visitLoop): (TOutputGLSLBase::visitBranch): (TOutputGLSLBase::visitCodeBlock): * src/compiler/OutputGLSLBase.h: Added. (TOutputGLSLBase::objSink): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitUnary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitSelection): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::visitBranch): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::outputLineDirective): * src/compiler/OutputHLSL.h: * src/compiler/ParseHelper.cpp: (TParseContext::precisionErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::nonInitErrorCheck): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): * src/compiler/ShHandle.h: * src/compiler/ShaderLang.cpp: (getVariableInfo): (ShConstructCompiler): (ShGetInfo): (ShGetActiveAttrib): (ShGetActiveUniform): * src/compiler/TranslatorESSL.cpp: Added. (TranslatorESSL::TranslatorESSL): (TranslatorESSL::translate): (TranslatorESSL::writeExtensionBehavior): * src/compiler/TranslatorESSL.h: Added. * src/compiler/ValidateLimitations.cpp: (ValidateLimitations::visitBinary): (ValidateLimitations::visitLoop): * src/compiler/ValidateLimitations.h: * src/compiler/VariableInfo.cpp: (getVariableInfo): (getBuiltInVariableInfo): (getUserDefinedVariableInfo): (CollectAttribsUniforms::visitAggregate): * src/compiler/VariableInfo.h: * src/compiler/VersionGLSL.cpp: (TVersionGLSL::visitSymbol): (TVersionGLSL::visitConstantUnion): (TVersionGLSL::visitBinary): (TVersionGLSL::visitUnary): (TVersionGLSL::visitSelection): (TVersionGLSL::visitAggregate): (TVersionGLSL::visitLoop): (TVersionGLSL::visitBranch): * src/compiler/VersionGLSL.h: * src/compiler/glslang.y: * src/compiler/glslang_tab.cpp: * src/compiler/glslang_tab.h: * src/compiler/intermediate.h: (TIntermLoop::TIntermLoop): (TIntermLoop::setUnrollFlag): (TIntermLoop::getUnrollFlag): (TIntermSymbol::TIntermSymbol): (TIntermSymbol::setId): (TIntermSymbol::setSymbol): (TIntermSymbol::getOriginalSymbol): (TIntermAggregate::TIntermAggregate): (TIntermAggregate::setEndLine): (TIntermAggregate::getEndLine): * src/compiler/preprocessor/atom.c: (AddString): * src/compiler/preprocessor/compile.h: * src/compiler/preprocessor/cpp.c: (CPPelse): (eval): (CPPif): (CPPifdef): (readCPPline): (ChkCorrectElseNesting): * src/compiler/preprocessor/cppstruct.c: (ResetPreprocessor): * src/compiler/preprocessor/scanner.c: (byte_scan): (yylex_CPP): * src/compiler/preprocessor/scanner.h: * src/libEGL/Config.cpp: (egl::Config::Config): (egl::Config::set): (egl::ConfigSet::add): (egl::ConfigSet::getConfigs): * src/libEGL/Config.h: * src/libEGL/Display.cpp: (egl::Display::Display): (egl::Display::initialize): (egl::Display::terminate): (egl::Display::getConfigAttrib): (egl::Display::createDevice): (egl::Display::createWindowSurface): (egl::Display::createOffscreenSurface): (egl::Display::createContext): (egl::Display::destroyContext): (egl::Display::isInitialized): (egl::Display::getAdapterIdentifier): (egl::Display::isDeviceLost): (egl::Display::getBufferPool): (egl::Display::initExtensionString): (egl::Display::getExtensionString): (egl::Display::getVertexTextureSupport): (egl::Display::getNonPower2TextureSupport): * src/libEGL/Display.h: (egl::Display::isD3d9ExDevice): * src/libEGL/Surface.cpp: (egl::Surface::Surface): (egl::Surface::initialize): (egl::Surface::release): (egl::Surface::resetSwapChain): (egl::SurfaceWindowProc): (egl::Surface::subclassWindow): (egl::Surface::unsubclassWindow): (egl::Surface::swap): (egl::Surface::getRenderTarget): (egl::Surface::getOffscreenTexture): (egl::Surface::getTextureFormat): (egl::Surface::getTextureTarget): (egl::Surface::setBoundTexture): (egl::Surface::getBoundTexture): (egl::Surface::getFormat): * src/libEGL/Surface.h: (egl::Surface::getShareHandle): * src/libEGL/libEGL.cpp: (validateDisplay): (validateConfig): (validateContext): (validateSurface): * src/libEGL/libEGL.rc: Added. * src/libEGL/libEGL.vcproj: * src/libEGL/main.cpp: (DllMain): * src/libEGL/main.h: * src/libEGL/resource.h: Added. * src/libGLESv2/Blit.cpp: (gl::Blit::initGeometry): (gl::Blit::copy): * src/libGLESv2/Blit.h: * src/libGLESv2/Buffer.cpp: (gl::Buffer::Buffer): (gl::Buffer::~Buffer): (gl::Buffer::bufferData): (gl::Buffer::bufferSubData): (gl::Buffer::getStaticVertexBuffer): (gl::Buffer::getStaticIndexBuffer): (gl::Buffer::invalidateStaticData): (gl::Buffer::promoteStaticUsage): * src/libGLESv2/Buffer.h: * src/libGLESv2/Context.cpp: (gl::Context::Context): (gl::Context::~Context): (gl::Context::makeCurrent): (gl::Context::markAllStateDirty): (gl::Context::setActiveSampler): (gl::Context::createFramebuffer): (gl::Context::createFence): (gl::Context::deleteFramebuffer): (gl::Context::deleteFence): (gl::Context::bindTexture2D): (gl::Context::bindTextureCubeMap): (gl::Context::getTexture2D): (gl::Context::getTextureCubeMap): (gl::Context::getSamplerTexture): (gl::Context::getIntegerv): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::applyVertexBuffer): (gl::Context::applyShaders): (gl::Context::applyTextures): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::finish): (gl::Context::flush): (gl::Context::drawClosingLine): (gl::Context::getMaximumVertexTextureImageUnits): (gl::Context::getMaximumCombinedTextureImageUnits): (gl::Context::supportsNonPower2Texture): (gl::Context::detachTexture): (gl::Context::getIncompleteTexture): (gl::Context::initExtensionString): (gl::Context::blitFramebuffer): (gl::VertexDeclarationCache::VertexDeclarationCache): (gl::VertexDeclarationCache::~VertexDeclarationCache): (gl::VertexDeclarationCache::applyDeclaration): * src/libGLESv2/Context.h: * src/libGLESv2/Framebuffer.cpp: (gl::Framebuffer::lookupRenderbuffer): (gl::Framebuffer::completeness): * src/libGLESv2/Framebuffer.h: * src/libGLESv2/HandleAllocator.cpp: Added. (gl::HandleAllocator::HandleAllocator): (gl::HandleAllocator::~HandleAllocator): (gl::HandleAllocator::setBaseHandle): (gl::HandleAllocator::allocate): (gl::HandleAllocator::release): * src/libGLESv2/HandleAllocator.h: Added. * src/libGLESv2/IndexDataManager.cpp: Added. (gl::IndexDataManager::IndexDataManager): (gl::IndexDataManager::~IndexDataManager): (gl::convertIndices): (gl::computeRange): (gl::IndexDataManager::prepareIndexData): (gl::IndexDataManager::indexSize): (gl::IndexDataManager::typeSize): (gl::IndexBuffer::IndexBuffer): (gl::IndexBuffer::~IndexBuffer): (gl::IndexBuffer::getBuffer): (gl::IndexBuffer::unmap): (gl::StreamingIndexBuffer::StreamingIndexBuffer): (gl::StreamingIndexBuffer::~StreamingIndexBuffer): (gl::StreamingIndexBuffer::map): (gl::StreamingIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::StaticIndexBuffer): (gl::StaticIndexBuffer::~StaticIndexBuffer): (gl::StaticIndexBuffer::map): (gl::StaticIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::lookupType): (gl::StaticIndexBuffer::lookupRange): (gl::StaticIndexBuffer::addRange): * src/libGLESv2/IndexDataManager.h: Added. (gl::IndexBuffer::size): * src/libGLESv2/Program.cpp: (gl::Program::getSemanticIndex): (gl::Program::getSamplerMapping): (gl::Program::getSamplerTextureType): (gl::Program::compileToBinary): (gl::Program::packVaryings): (gl::Program::linkVaryings): (gl::Program::link): (gl::Program::linkUniforms): (gl::Program::defineUniform): (gl::Program::applyUniform1iv): (gl::Program::appendToInfoLogSanitized): (gl::Program::unlink): (gl::Program::getActiveUniformMaxLength): (gl::Program::validate): (gl::Program::validateSamplers): * src/libGLESv2/Program.h: * src/libGLESv2/Renderbuffer.cpp: (gl::Renderbuffer::getWidth): (gl::Renderbuffer::getHeight): (gl::Renderbuffer::getInternalFormat): (gl::Renderbuffer::getRedSize): (gl::Renderbuffer::getGreenSize): (gl::Renderbuffer::getBlueSize): (gl::Renderbuffer::getAlphaSize): (gl::Renderbuffer::getDepthSize): (gl::Renderbuffer::getStencilSize): (gl::Renderbuffer::getSamples): (gl::RenderbufferStorage::RenderbufferStorage): (gl::RenderbufferStorage::getWidth): (gl::RenderbufferStorage::getHeight): (gl::RenderbufferStorage::getInternalFormat): (gl::RenderbufferStorage::getRedSize): (gl::RenderbufferStorage::getGreenSize): (gl::RenderbufferStorage::getBlueSize): (gl::RenderbufferStorage::getAlphaSize): (gl::RenderbufferStorage::getDepthSize): (gl::RenderbufferStorage::getStencilSize): (gl::RenderbufferStorage::getD3DFormat): (gl::Colorbuffer::Colorbuffer): (gl::Colorbuffer::getWidth): (gl::Colorbuffer::getHeight): (gl::Colorbuffer::getInternalFormat): (gl::Colorbuffer::getType): (gl::Colorbuffer::getD3DFormat): (gl::Colorbuffer::isColorbuffer): (gl::Colorbuffer::getRenderTarget): (gl::DepthStencilbuffer::DepthStencilbuffer): (gl::Depthbuffer::Depthbuffer): (gl::Stencilbuffer::Stencilbuffer): * src/libGLESv2/Renderbuffer.h: * src/libGLESv2/ResourceManager.cpp: (gl::ResourceManager::createBuffer): (gl::ResourceManager::createShader): (gl::ResourceManager::createProgram): (gl::ResourceManager::createTexture): (gl::ResourceManager::createRenderbuffer): (gl::ResourceManager::deleteBuffer): (gl::ResourceManager::deleteShader): (gl::ResourceManager::deleteProgram): (gl::ResourceManager::deleteTexture): (gl::ResourceManager::deleteRenderbuffer): (gl::ResourceManager::checkTextureAllocation): * src/libGLESv2/ResourceManager.h: * src/libGLESv2/Shader.cpp: (gl::Shader::Shader): (gl::Shader::compileToHLSL): * src/libGLESv2/Shader.h: * src/libGLESv2/Texture.cpp: (gl::Texture::Image::Image): (gl::Texture::Image::~Image): (gl::Texture::Image::isRenderable): (gl::Texture::Image::getD3DFormat): (gl::Texture::Texture): (gl::Texture::setMinFilter): (gl::Texture::setMagFilter): (gl::Texture::setWrapS): (gl::Texture::setWrapT): (gl::Texture::loadImageData): (gl::Texture::loadAlphaImageData): (gl::Texture::loadAlphaFloatImageData): (gl::Texture::loadAlphaHalfFloatImageData): (gl::Texture::loadLuminanceImageData): (gl::Texture::loadLuminanceFloatImageData): (gl::Texture::loadLuminanceHalfFloatImageData): (gl::Texture::loadLuminanceAlphaImageData): (gl::Texture::loadLuminanceAlphaFloatImageData): (gl::Texture::loadLuminanceAlphaHalfFloatImageData): (gl::Texture::loadRGBUByteImageData): (gl::Texture::loadRGB565ImageData): (gl::Texture::loadRGBFloatImageData): (gl::Texture::loadRGBHalfFloatImageData): (gl::Texture::loadRGBAUByteImageDataSSE2): (gl::Texture::loadRGBAUByteImageData): (gl::Texture::loadRGBA4444ImageData): (gl::Texture::loadRGBA5551ImageData): (gl::Texture::loadRGBAFloatImageData): (gl::Texture::loadRGBAHalfFloatImageData): (gl::Texture::loadBGRAImageData): (gl::Texture::loadCompressedImageData): (gl::Texture::createSurface): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::Texture::copyToImage): (gl::Texture::getTexture): (gl::Texture::isDirtyParameter): (gl::Texture::isDirtyImage): (gl::Texture::resetDirty): (gl::Texture::getSerial): (gl::Texture::creationLevels): (gl::Texture::levelCount): (gl::Texture::issueSerial): (gl::Texture2D::Texture2D): (gl::Texture2D::~Texture2D): (gl::Texture2D::getWidth): (gl::Texture2D::getHeight): (gl::Texture2D::getInternalFormat): (gl::Texture2D::getType): (gl::Texture2D::getD3DFormat): (gl::Texture2D::redefineTexture): (gl::Texture2D::setImage): (gl::Texture2D::bindTexImage): (gl::Texture2D::releaseTexImage): (gl::Texture2D::setCompressedImage): (gl::Texture2D::commitRect): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::isComplete): (gl::Texture2D::isCompressed): (gl::Texture2D::getBaseTexture): (gl::Texture2D::createTexture): (gl::Texture2D::updateTexture): (gl::Texture2D::convertToRenderTarget): (gl::Texture2D::generateMipmaps): (gl::Texture2D::getRenderbuffer): (gl::Texture2D::getRenderTarget): (gl::TextureCubeMap::getWidth): (gl::TextureCubeMap::getHeight): (gl::TextureCubeMap::getInternalFormat): (gl::TextureCubeMap::getType): (gl::TextureCubeMap::getD3DFormat): (gl::TextureCubeMap::setImagePosX): (gl::TextureCubeMap::setImageNegX): (gl::TextureCubeMap::setImagePosY): (gl::TextureCubeMap::setImageNegY): (gl::TextureCubeMap::setImagePosZ): (gl::TextureCubeMap::setImageNegZ): (gl::TextureCubeMap::setCompressedImage): (gl::TextureCubeMap::commitRect): (gl::TextureCubeMap::isComplete): (gl::TextureCubeMap::isCompressed): (gl::TextureCubeMap::getBaseTexture): (gl::TextureCubeMap::createTexture): (gl::TextureCubeMap::updateTexture): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::setImage): (gl::TextureCubeMap::redefineTexture): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::getCubeMapSurface): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::generateMipmaps): (gl::TextureCubeMap::getRenderbuffer): (gl::TextureCubeMap::getRenderTarget): * src/libGLESv2/Texture.h: * src/libGLESv2/VertexDataManager.cpp: Added. (gl::VertexDataManager::VertexDataManager): (gl::VertexDataManager::~VertexDataManager): (gl::VertexDataManager::writeAttributeData): (gl::VertexDataManager::prepareVertexData): (gl::VertexDataManager::spaceRequired): (gl::VertexDataManager::checkVertexCaps): (gl::VertexDataManager::typeIndex): (gl::VertexBuffer::VertexBuffer): (gl::VertexBuffer::~VertexBuffer): (gl::VertexBuffer::unmap): (gl::VertexBuffer::getBuffer): (gl::ConstantVertexBuffer::ConstantVertexBuffer): (gl::ConstantVertexBuffer::~ConstantVertexBuffer): (gl::ArrayVertexBuffer::ArrayVertexBuffer): (gl::ArrayVertexBuffer::~ArrayVertexBuffer): (gl::ArrayVertexBuffer::addRequiredSpace): (gl::ArrayVertexBuffer::addRequiredSpaceFor): (gl::StreamingVertexBuffer::StreamingVertexBuffer): (gl::StreamingVertexBuffer::~StreamingVertexBuffer): (gl::StreamingVertexBuffer::map): (gl::StreamingVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::StaticVertexBuffer): (gl::StaticVertexBuffer::~StaticVertexBuffer): (gl::StaticVertexBuffer::map): (gl::StaticVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::lookupAttribute): (gl::VertexDataManager::formatConverter): * src/libGLESv2/VertexDataManager.h: Added. (gl::ArrayVertexBuffer::size): (gl::VertexDataManager::dirtyCurrentValue): * src/libGLESv2/libGLESv2.cpp: (validImageSize): (Extension::glBindTexImage): * src/libGLESv2/libGLESv2.def: * src/libGLESv2/libGLESv2.rc: Added. * src/libGLESv2/libGLESv2.vcproj: * src/libGLESv2/main.cpp: (error): * src/libGLESv2/mathutil.h: (gl::clamp): (gl::clamp01): (gl::transformPixelRect): (gl::transformPixelYOffset): (gl::adjustWinding): (gl::supportsSSE2): * src/libGLESv2/resource.h: Added. * src/libGLESv2/utilities.cpp: (gl::ComputeCompressedPitch): (es2dx::ConvertCubeFace): (es2dx::ConvertPrimitiveType): (es2dx::ConvertRenderbufferFormat): (es2dx::GetMultisampleTypeFromSamples): (dx2es::GetStencilSize): (dx2es::GetAlphaSize): (dx2es::GetRedSize): (dx2es::GetGreenSize): (dx2es::GetBlueSize): (dx2es::GetDepthSize): (getTempPath): (writeFile): * src/libGLESv2/utilities.h: * src/libGLESv2/vertexconversion.h: Added. (gl::Identity::convert): (gl::Cast::convert): (gl::Normalize::convert): (gl::FixedToFloat::convert): (gl::SimpleDefaultValues::zero): (gl::SimpleDefaultValues::one): (gl::NormalizedDefaultValues::zero): (gl::NormalizedDefaultValues::one): (gl::VertexDataConverter::convertArray): (gl::VertexDataConverter::pointerAddBytes): (gl::VertexDataConverter::copyComponent): 2011-05-24 David Kilzer Part 2 of 2: Enable -Wnewline-eof on ANGLE Reviewed by Adam Roben. * Configurations/Base.xcconfig: (GCC_WARN_ABOUT_MISSING_NEWLINE): Added. Set to YES. 2011-05-23 David Kilzer Part 1 of 2: Enable -Wnewline-eof on ANGLE Merge ANGLE upstream commit r653 for Issue 154. * src/compiler/PoolAlloc.h: Added newline to end of file. * src/compiler/ShHandle.h: Ditto. * src/libEGL/Display.cpp: Ditto. 2011-05-16 David Kilzer C++ exceptions should not be enabled when building with llvm-gcc-4.2 Reviewed by Mark Rowe. * Configurations/Base.xcconfig: Fixed typo. 2011-05-04 David Kilzer Part 2 of 2: Enable -Werror on ANGLE Reviewed by Adam Barth. * Configurations/Base.xcconfig: (GCC_TREAT_WARNINGS_AS_ERRORS): Set to YES. 2011-05-04 David Kilzer Part 1 of 2: Enable -Werror on ANGLE Merge ANGLE upstream commits r572, r573, r574, r575. This unblocks enabling -Werror on ANGLE. Since all changes are in the upstream repository, they may be safely overwritten during the next ANGLE update. * src/compiler/ConstantUnion.h: (ConstantUnion::operator==): Added a default case. * src/compiler/Intermediate.cpp: (TIntermBinary::promote): Added parentheses. * src/compiler/ParseHelper.cpp: (TParseContext::precisionErrorCheck): Added a default case. * src/compiler/PoolAlloc.cpp: (TAllocation::checkGuardBlock): Changed '%u' to '%lu' for size_t variable. Put for loop inside #ifdef GUARD_BLOCKS/#endif macros to fix tautological-compare warning. (TAllocation::checkAllocList): Added newline to end of file. 2011-04-26 Dan Bernstein Build fix. * Configurations/CompilerVersion.xcconfig: 2011-04-26 Dan Bernstein Reviewed by Mark Rowe. Choose the compiler based on the Xcode version for Snow Leopard debug builds. * Configurations/Base.xcconfig: * Configurations/CompilerVersion.xcconfig: Added. 2011-03-17 Jeff Miller Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically: *.mode* *.pbxuser *.perspective* project.xcworkspace xcuserdata * ANGLE.xcodeproj: Modified property svn:ignore. * src/build_angle.xcodeproj: Modified property svn:ignore. 2011-01-18 Kenneth Russell Unreviewed, Leopard build fix. Remove flex/bison targets for GLSL grammar because the generated sources are already checked in. * ANGLE.xcodeproj/project.pbxproj: * src/build_angle.xcodeproj/project.pbxproj: 2011-01-18 Kenneth Russell Unreviewed, release build fix. Explicitly cast away const. * src/compiler/preprocessor/scanner.c: (ScanFromString): 2011-01-18 Ben Vanik Reviewed by Kenneth Russell. Updating ANGLE in WebKit to r533. https://bugs.webkit.org/show_bug.cgi?id=47194 * ANGLE.xcodeproj/project.pbxproj: * include/GLSLANG/ShaderLang.h: * src/common/debug.cpp: (gl::trace): * src/common/debug.h: * src/compiler/CodeGenGLSL.cpp: (ConstructCompiler): * src/compiler/CodeGenHLSL.cpp: (ConstructCompiler): * src/compiler/Common.h: (EncodeSourceLoc): (DecodeSourceLoc): * src/compiler/Compiler.cpp: Added. (TShHandleBase::TShHandleBase): (TShHandleBase::~TShHandleBase): (TCompiler::TCompiler): (TCompiler::~TCompiler): (TCompiler::Init): (TCompiler::compile): (TCompiler::InitBuiltInSymbolTable): (TCompiler::clearResults): (TCompiler::validateLimitations): (TCompiler::collectAttribsUniforms): * src/compiler/ExtensionBehavior.h: Added. * src/compiler/InfoSink.cpp: (TInfoSinkBase::location): * src/compiler/InfoSink.h: (TInfoSinkBase::size): * src/compiler/Initialize.cpp: (BuiltInFunctionsCommon): (BuiltInFunctionsVertex): (BuiltInFunctionsFragment): (StandardUniforms): (DefaultPrecisionVertex): (DefaultPrecisionFragment): (BuiltInConstants): (TBuiltIns::initialize): (IdentifyBuiltIns): (InitExtensionBehavior): * src/compiler/Initialize.h: * src/compiler/IntermTraverse.cpp: (TIntermLoop::traverse): * src/compiler/Intermediate.cpp: (getOperatorString): (TIntermediate::addBinaryMath): (TIntermediate::addLoop): (TIntermediate::postProcess): (TIntermBinary::promote): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::visitUnary): (TOutputGLSL::visitLoop): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::OutputHLSL): (sh::OutputHLSL::header): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitUnary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::visitLoop): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::argumentString): * src/compiler/OutputHLSL.h: * src/compiler/ParseHelper.cpp: (ReportInfo): (DefineExtensionMacros): (TParseContext::error): (TParseContext::warning): (TParseContext::reservedErrorCheck): (TParseContext::constructorErrorCheck): (TParseContext::arrayQualifierErrorCheck): (TParseContext::extensionErrorCheck): (TParseContext::areAllChildConst): (PaParseStrings): * src/compiler/ParseHelper.h: (TParseContext::TParseContext): * src/compiler/PoolAlloc.cpp: (InitializeGlobalPools): (FreeGlobalPools): (SetGlobalPoolAllocator): (TPoolAllocator::TPoolAllocator): (TPoolAllocator::~TPoolAllocator): (TAllocation::checkAllocList): * src/compiler/PoolAlloc.h: * src/compiler/SearchSymbol.cpp: Added. (sh::SearchSymbol::SearchSymbol): (sh::SearchSymbol::traverse): (sh::SearchSymbol::visitSymbol): (sh::SearchSymbol::foundMatch): * src/compiler/SearchSymbol.h: Added. * src/compiler/ShHandle.h: (TCompiler::getAsCompiler): (TCompiler::getInfoSink): (TCompiler::getAttribs): (TCompiler::getUniforms): (TCompiler::getShaderType): (TCompiler::getShaderSpec): * src/compiler/ShaderLang.cpp: (getVariableMaxLength): (getVariableInfo): (ShInitBuiltInResources): (ShConstructCompiler): (ShCompile): (ShGetInfo): (ShGetInfoLog): (ShGetObjectCode): (ShGetActiveAttrib): (ShGetActiveUniform): * src/compiler/SymbolTable.cpp: (TSymbolTableLevel::relateToExtension): * src/compiler/SymbolTable.h: (TVariable::shareConstPointer): (TFunction::relateToExtension): (TFunction::getExtension): (TFunction::getParamCount): (TFunction::getParam): (TSymbolTable::getGlobalLevel): (TSymbolTable::relateToOperator): (TSymbolTable::relateToExtension): * src/compiler/TranslatorGLSL.cpp: (writeVersion): (TranslatorGLSL::TranslatorGLSL): (TranslatorGLSL::translate): * src/compiler/TranslatorGLSL.h: * src/compiler/TranslatorHLSL.cpp: (TranslatorHLSL::TranslatorHLSL): (TranslatorHLSL::translate): * src/compiler/TranslatorHLSL.h: * src/compiler/Types.h: (TType::TType): * src/compiler/UnfoldSelect.cpp: (sh::UnfoldSelect::visitSelection): * src/compiler/UnfoldSelect.h: * src/compiler/ValidateLimitations.cpp: Added. (ValidateLimitations::ValidateLimitations): (ValidateLimitations::visitSymbol): (ValidateLimitations::visitConstantUnion): (ValidateLimitations::visitBinary): (ValidateLimitations::visitUnary): (ValidateLimitations::visitSelection): (ValidateLimitations::visitAggregate): (ValidateLimitations::visitLoop): (ValidateLimitations::visitBranch): (ValidateLimitations::error): (ValidateLimitations::withinLoopBody): (ValidateLimitations::isLoopIndex): (ValidateLimitations::validateLoopType): (ValidateLimitations::validateForLoopHeader): (ValidateLimitations::validateForLoopInit): (ValidateLimitations::validateForLoopCond): (ValidateLimitations::validateForLoopExpr): (ValidateLimitations::validateFunctionCall): (ValidateLimitations::validateOperation): (ValidateLimitations::isConstExpr): (ValidateLimitations::isConstIndexExpr): (ValidateLimitations::validateIndexing): * src/compiler/ValidateLimitations.h: Added. (ValidateLimitations::numErrors): * src/compiler/VariableInfo.cpp: Added. (arrayBrackets): (getVariableDataType): (getVariableInfo): (getBuiltInVariableInfo): (getUserDefinedVariableInfo): (CollectAttribsUniforms::CollectAttribsUniforms): (CollectAttribsUniforms::visitSymbol): (CollectAttribsUniforms::visitConstantUnion): (CollectAttribsUniforms::visitBinary): (CollectAttribsUniforms::visitUnary): (CollectAttribsUniforms::visitSelection): (CollectAttribsUniforms::visitAggregate): (CollectAttribsUniforms::visitLoop): (CollectAttribsUniforms::visitBranch): * src/compiler/VariableInfo.h: Added. * src/compiler/VersionGLSL.cpp: Added. (TVersionGLSL::TVersionGLSL): (TVersionGLSL::visitSymbol): (TVersionGLSL::visitConstantUnion): (TVersionGLSL::visitBinary): (TVersionGLSL::visitUnary): (TVersionGLSL::visitSelection): (TVersionGLSL::visitAggregate): (TVersionGLSL::visitLoop): (TVersionGLSL::visitBranch): (TVersionGLSL::updateVersion): * src/compiler/VersionGLSL.h: Added. (TVersionGLSL::getVersion): * src/compiler/generate_glslang_lexer.sh: Added. * src/compiler/generate_glslang_parser.sh: Added. * src/compiler/glslang.h: Added. * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/glslang_lex.cpp: Added. (yy_get_next_buffer): (yy_get_previous_state): (yy_try_NUL_trans): (input): (yyrestart): (yy_switch_to_buffer): (yy_load_buffer_state): (yy_create_buffer): (yy_delete_buffer): (yy_init_buffer): (yy_flush_buffer): (yypush_buffer_state): (yypop_buffer_state): (yyensure_buffer_stack): (yy_scan_buffer): (yy_scan_string): (yy_scan_bytes): (yy_push_state): (yy_pop_state): (yy_top_state): (yy_fatal_error): (yyget_extra): (yyget_lineno): (yyget_column): (yyget_in): (yyget_out): (yyget_leng): (yyget_text): (yyset_extra): (yyset_lineno): (yyset_column): (yyset_in): (yyset_out): (yyget_debug): (yyset_debug): (yyget_lval): (yyset_lval): (yylex_init): (yylex_init_extra): (yy_init_globals): (yylex_destroy): (yy_flex_strncpy): (yy_flex_strlen): (yyalloc): (yyrealloc): (yyfree): (string_input): (check_type): (reserved_word): (yyerror): (glslang_initialize): (glslang_finalize): (glslang_scan): * src/compiler/glslang_tab.cpp: Added. (yytnamerr): (yysyntax_error): (glslang_parse): * src/compiler/glslang_tab.h: Added. * src/compiler/intermOut.cpp: (TOutputTraverser::TOutputTraverser): (OutputTreeText): (TOutputTraverser::visitSymbol): (TOutputTraverser::visitBinary): (TOutputTraverser::visitUnary): (TOutputTraverser::visitAggregate): (TOutputTraverser::visitSelection): (TOutputTraverser::visitConstantUnion): (TOutputTraverser::visitLoop): (TOutputTraverser::visitBranch): (TIntermediate::outputTree): * src/compiler/intermediate.h: (TIntermLoop::TIntermLoop): (TIntermLoop::getType): (TIntermLoop::getInit): (TIntermLoop::getCondition): (TIntermLoop::getExpression): (TIntermLoop::getBody): * src/compiler/localintermediate.h: * src/compiler/osinclude.h: (OS_GetTLSValue): * src/compiler/ossource_nspr.cpp: Added. (OS_AllocTLSIndex): (OS_SetTLSValue): (OS_FreeTLSIndex): * src/compiler/preprocessor/compile.h: * src/compiler/preprocessor/cpp.c: (CPPdefine): (CPPelse): (CPPif): (CPPifdef): (CPPerror): (CPPextension): (readCPPline): * src/compiler/preprocessor/preprocess.h: * src/compiler/preprocessor/scanner.c: (str_getch): (str_ungetch): (ScanFromString): (lFloatConst): (byte_scan): (yylex_CPP): (check_EOF): * src/compiler/preprocessor/scanner.h: * src/compiler/preprocessor/tokens.c: (RecordToken): (ReadToken): * src/compiler/tools: Removed. * src/compiler/unistd.h: Removed. * src/compiler/util.cpp: Added. (atof_dot): * src/compiler/util.h: Added. * src/libEGL/Config.cpp: (egl::Config::set): * src/libEGL/Display.cpp: (egl::Display::Display): (egl::Display::initialize): (egl::Display::terminate): (egl::Display::createDevice): (egl::Display::resetDevice): (egl::Display::createContext): (egl::Display::destroyContext): (egl::Display::getMinSwapInterval): (egl::Display::getMaxSwapInterval): (egl::Display::getDevice): (egl::Display::getFloatTextureSupport): (egl::Display::getHalfFloatTextureSupport): (egl::Display::getLuminanceTextureSupport): (egl::Display::getLuminanceAlphaTextureSupport): (egl::Display::getBufferPool): (egl::Display::getEventQuerySupport): (egl::Display::getDefaultPresentParameters): * src/libEGL/Display.h: * src/libEGL/Surface.cpp: (egl::Surface::Surface): (egl::Surface::~Surface): (egl::Surface::release): (egl::Surface::resetSwapChain): (egl::Surface::writeRecordableFlipState): (egl::Surface::restoreState): (egl::SurfaceWindowProc): (egl::Surface::subclassWindow): (egl::Surface::unsubclassWindow): (egl::Surface::checkForOutOfDateSwapChain): (egl::Surface::convertInterval): (egl::Surface::swap): (egl::Surface::getRenderTarget): (egl::Surface::setSwapInterval): * src/libEGL/Surface.h: * src/libEGL/libEGL.cpp: * src/libGLESv2/Blit.cpp: (gl::Blit::copySurfaceToTexture): (gl::Blit::setCommonBlitState): * src/libGLESv2/Buffer.cpp: (gl::Buffer::Buffer): (gl::Buffer::~Buffer): (gl::Buffer::bufferData): (gl::Buffer::bufferSubData): (gl::Buffer::getVertexBuffer): (gl::Buffer::getIndexBuffer): (gl::Buffer::invalidateStaticData): * src/libGLESv2/Buffer.h: * src/libGLESv2/Context.cpp: (gl::Context::Context): (gl::Context::~Context): (gl::Context::makeCurrent): (gl::Context::markAllStateDirty): (gl::Context::setFragmentShaderDerivativeHint): (gl::Context::setEnableVertexAttribArray): (gl::Context::getVertexAttribState): (gl::Context::getVertexAttributes): (gl::Context::createFence): (gl::Context::deleteFence): (gl::Context::bindTexture2D): (gl::Context::bindTextureCubeMap): (gl::Context::getFence): (gl::Context::getTexture2D): (gl::Context::getTextureCubeMap): (gl::Context::getSamplerTexture): (gl::Context::getBooleanv): (gl::Context::getIntegerv): (gl::Context::getQueryParameterInfo): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::lookupAttributeMapping): (gl::Context::applyVertexBuffer): (gl::Context::applyIndexBuffer): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::drawArrays): (gl::Context::drawElements): (gl::Context::finish): (gl::Context::drawClosingLine): (gl::Context::getMaximumVaryingVectors): (gl::Context::getMaximumFragmentUniformVectors): (gl::Context::supportsEventQueries): (gl::Context::supportsFloatTextures): (gl::Context::supportsFloatLinearFilter): (gl::Context::supportsFloatRenderableTextures): (gl::Context::supportsHalfFloatTextures): (gl::Context::supportsHalfFloatLinearFilter): (gl::Context::supportsHalfFloatRenderableTextures): (gl::Context::getMaximumRenderbufferDimension): (gl::Context::getMaximumTextureDimension): (gl::Context::getMaximumCubeTextureDimension): (gl::Context::getMaximumTextureLevel): (gl::Context::supportsLuminanceTextures): (gl::Context::supportsLuminanceAlphaTextures): (gl::Context::supports32bitIndices): (gl::Context::getIncompleteTexture): (gl::Context::setVertexAttrib): (gl::Context::initExtensionString): (gl::Context::blitFramebuffer): * src/libGLESv2/Context.h: (gl::VertexAttribute::VertexAttribute): (gl::VertexAttribute::typeSize): (gl::VertexAttribute::stride): * src/libGLESv2/Fence.cpp: Added. (gl::Fence::Fence): (gl::Fence::~Fence): (gl::Fence::isFence): (gl::Fence::setFence): (gl::Fence::testFence): (gl::Fence::finishFence): (gl::Fence::getFenceiv): * src/libGLESv2/Fence.h: Added. * src/libGLESv2/Framebuffer.cpp: (gl::Framebuffer::completeness): (gl::DefaultFramebuffer::DefaultFramebuffer): (gl::DefaultFramebuffer::completeness): * src/libGLESv2/Program.cpp: (gl::Program::Program): (gl::Program::getSamplerMapping): (gl::Program::getUniformLocation): (gl::Program::setUniform1iv): (gl::Program::applyUniforms): (gl::Program::packVaryings): (gl::Program::linkVaryings): (gl::Program::link): (gl::Program::defineUniform): (gl::Program::createUniform): (gl::Program::applyUniform1iv): (gl::Program::resetInfoLog): (gl::Program::unlink): (gl::Program::getActiveAttribute): (gl::Program::getActiveUniform): (gl::Program::getDxDepthRangeLocation): * src/libGLESv2/Program.h: * src/libGLESv2/RefCountObject.cpp: (gl::RefCountObject::~RefCountObject): * src/libGLESv2/Renderbuffer.cpp: (gl::RenderbufferStorage::RenderbufferStorage): (gl::RenderbufferStorage::isFloatingPoint): (gl::Colorbuffer::Colorbuffer): (gl::DepthStencilbuffer::DepthStencilbuffer): * src/libGLESv2/Renderbuffer.h: * src/libGLESv2/Shader.cpp: (gl::Shader::Shader): (gl::Shader::parseVaryings): (gl::Shader::compileToHLSL): (gl::VertexShader::parseAttributes): * src/libGLESv2/Texture.cpp: (gl::Texture::Texture): (gl::Texture::isFloatingPoint): (gl::Texture::isRenderableFormat): (gl::Texture::selectFormat): (gl::Texture::loadImageData): (gl::Texture::loadAlphaFloatImageData): (gl::Texture::loadAlphaHalfFloatImageData): (gl::Texture::loadLuminanceImageData): (gl::Texture::loadLuminanceFloatImageData): (gl::Texture::loadLuminanceHalfFloatImageData): (gl::Texture::loadLuminanceAlphaImageData): (gl::Texture::loadLuminanceAlphaFloatImageData): (gl::Texture::loadLuminanceAlphaHalfFloatImageData): (gl::Texture::loadRGBFloatImageData): (gl::Texture::loadRGBHalfFloatImageData): (gl::Texture::loadRGBAFloatImageData): (gl::Texture::loadRGBAHalfFloatImageData): (gl::Texture::createSurface): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::Texture::copyNonRenderable): (gl::Texture::getD3DFormat): (gl::Texture::isRenderable): (gl::Texture2D::Texture2D): (gl::Texture2D::~Texture2D): (gl::Texture2D::redefineTexture): (gl::Texture2D::setImage): (gl::Texture2D::setCompressedImage): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::isComplete): (gl::Texture2D::createTexture): (gl::Texture2D::convertToRenderTarget): (gl::Texture2D::generateMipmaps): (gl::Texture2D::getColorbuffer): (gl::Texture2D::getRenderTarget): (gl::TextureCubeMap::TextureCubeMap): (gl::TextureCubeMap::~TextureCubeMap): (gl::TextureCubeMap::subImage): (gl::TextureCubeMap::subImageCompressed): (gl::TextureCubeMap::isComplete): (gl::TextureCubeMap::createTexture): (gl::TextureCubeMap::convertToRenderTarget): (gl::TextureCubeMap::redefineTexture): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::generateMipmaps): (gl::TextureCubeMap::getColorbuffer): (gl::TextureCubeMap::getRenderTarget): (gl::Texture::TextureColorbufferProxy::TextureColorbufferProxy): (gl::Texture::TextureColorbufferProxy::isFloatingPoint): * src/libGLESv2/Texture.h: * src/libGLESv2/geometry/IndexDataManager.cpp: (gl::IndexDataManager::IndexDataManager): (gl::IndexDataManager::~IndexDataManager): (gl::convertIndices): (gl::computeRange): (gl::IndexDataManager::prepareIndexData): (gl::IndexDataManager::indexSize): (gl::IndexDataManager::typeSize): (gl::IndexBuffer::IndexBuffer): (gl::IndexBuffer::~IndexBuffer): (gl::IndexBuffer::getBuffer): (gl::IndexBuffer::unmap): (gl::StreamingIndexBuffer::StreamingIndexBuffer): (gl::StreamingIndexBuffer::~StreamingIndexBuffer): (gl::StreamingIndexBuffer::map): (gl::StreamingIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::StaticIndexBuffer): (gl::StaticIndexBuffer::~StaticIndexBuffer): (gl::StaticIndexBuffer::map): (gl::StaticIndexBuffer::reserveSpace): (gl::StaticIndexBuffer::lookupType): (gl::StaticIndexBuffer::lookupRange): (gl::StaticIndexBuffer::addRange): * src/libGLESv2/geometry/IndexDataManager.h: (gl::IndexBuffer::size): * src/libGLESv2/geometry/VertexDataManager.cpp: (gl::VertexDataManager::VertexDataManager): (gl::VertexDataManager::~VertexDataManager): (gl::VertexDataManager::writeAttributeData): (gl::VertexDataManager::prepareVertexData): (gl::VertexDataManager::spaceRequired): (gl::VertexDataManager::checkVertexCaps): (gl::VertexDataManager::typeIndex): (gl::VertexDataManager::setupAttributes): (gl::VertexBuffer::VertexBuffer): (gl::VertexBuffer::~VertexBuffer): (gl::VertexBuffer::unmap): (gl::VertexBuffer::getBuffer): (gl::ConstantVertexBuffer::ConstantVertexBuffer): (gl::ConstantVertexBuffer::~ConstantVertexBuffer): (gl::ArrayVertexBuffer::ArrayVertexBuffer): (gl::ArrayVertexBuffer::~ArrayVertexBuffer): (gl::ArrayVertexBuffer::addRequiredSpace): (gl::ArrayVertexBuffer::addRequiredSpaceFor): (gl::StreamingVertexBuffer::StreamingVertexBuffer): (gl::StreamingVertexBuffer::~StreamingVertexBuffer): (gl::StreamingVertexBuffer::map): (gl::StreamingVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::StaticVertexBuffer): (gl::StaticVertexBuffer::~StaticVertexBuffer): (gl::StaticVertexBuffer::map): (gl::StaticVertexBuffer::reserveRequiredSpace): (gl::StaticVertexBuffer::lookupAttribute): (gl::VertexDataManager::formatConverter): * src/libGLESv2/geometry/VertexDataManager.h: (gl::ArrayVertexBuffer::size): (gl::VertexDataManager::dirtyCurrentValue): * src/libGLESv2/geometry/backend.cpp: Removed. * src/libGLESv2/geometry/backend.h: Removed. * src/libGLESv2/geometry/dx9.cpp: Removed. * src/libGLESv2/geometry/dx9.h: Removed. * src/libGLESv2/libGLESv2.cpp: * src/libGLESv2/libGLESv2.def: * src/libGLESv2/libGLESv2.vcproj: * src/libGLESv2/utilities.cpp: (gl::UniformComponentCount): (gl::UniformComponentType): (gl::ComputePixelSize): (gl::CheckTextureFormatType): (gl::IsColorRenderable): (gl::IsDepthRenderable): (gl::IsStencilRenderable): (es2dx::GetAlphaSize): (es2dx::GetRedSize): (es2dx::GetGreenSize): (es2dx::GetBlueSize): (es2dx::GetDepthSize): (es2dx::ConvertPrimitiveType): (dx2es::ConvertBackBufferFormat): (dx2es::ConvertDepthStencilFormat): * src/libGLESv2/utilities.h: 2011-01-17 Dan Bernstein Rubber-stamped by Mark Rowe. Update xcodeproj svn:ignore to include xcuserdata. * ANGLE.xcodeproj: Modified property svn:ignore. * src/build_angle.xcodeproj: Modified property svn:ignore. 2010-12-01 Steve Falkenburg Reviewed by Adam Roben. vcproj changes can't be applied cleanly by the Windows EWS bot https://bugs.webkit.org/show_bug.cgi?id=50328 * src/libEGL/libEGL.vcproj: Added property svn:eol-style. * src/libGLESv2/libGLESv2.vcproj: Added property svn:eol-style. 2010-11-03 Darin Adler Updated Xcode projects by opening them with Xcode 3.2.4. Updated svn:ignore for Xcode projects. * ANGLE.xcodeproj: Added property svn:ignore. * ANGLE.xcodeproj/project.pbxproj: Updated with Xcode 3.2.4. * src/build_angle.xcodeproj: Added property svn:ignore. * src/build_angle.xcodeproj/project.pbxproj: Updated with Xcode 3.2.4. 2010-09-01 Zhenyao Mo Reviewed by Kenneth Russell. Roll ANGLE under webkit to r402 https://bugs.webkit.org/show_bug.cgi?id=45004 * ANGLE.xcodeproj/project.pbxproj: * include/GLES2/gl2ext.h: * include/GLSLANG/ResourceLimits.h: Removed. * include/GLSLANG/ShaderLang.h: * src/compiler/BaseTypes.h: (getPrecisionString): (getBasicString): (IsSampler): (getQualifierString): * src/compiler/Initialize.cpp: (BuiltInConstants): (IdentifyBuiltIns): * src/compiler/Initialize.h: * src/compiler/InitializeDll.cpp: (InitProcess): (DetachProcess): (InitThread): (DetachThread): * src/compiler/InitializeDll.h: * src/compiler/InitializeParseContext.h: * src/compiler/Intermediate.cpp: (GetHigherPrecision): (TIntermediate::addBinaryMath): (TIntermediate::setAggregateOperator): (TIntermediate::addComma): (TIntermediate::postProcess): (TIntermBinary::promote): (CompareStruct): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::writeFunctionParameters): (TOutputGLSL::visitUnary): (TOutputGLSL::visitBranch): * src/compiler/OutputHLSL.cpp: (sh::OutputHLSL::header): (sh::OutputHLSL::visitBinary): (sh::OutputHLSL::visitAggregate): (sh::OutputHLSL::handleExcessiveLoop): (sh::OutputHLSL::addConstructor): * src/compiler/ParseHelper.cpp: (TParseContext::constructorErrorCheck): (TParseContext::samplerErrorCheck): (TParseContext::paramErrorCheck): (TParseContext::findFunction): (TParseContext::executeInitializer): (TParseContext::addConstructor): (TParseContext::addConstStruct): (FreeParseContextIndex): (GetGlobalParseContext): * src/compiler/PoolAlloc.h: (TPoolAllocator::tHeader::tHeader): (pool_allocator::allocate): (pool_allocator::deallocate): * src/compiler/ShaderLang.cpp: (ShInitialize): (ShFinalize): (ShInitBuiltInResource): * src/compiler/SymbolTable.cpp: (TType::getStructSize): * src/compiler/SymbolTable.h: (TVariable::setQualifier): * src/compiler/Types.h: (TType::TType): (TType::getBasicType): (TType::setBasicType): (TType::getPrecision): (TType::setPrecision): (TType::getQualifier): (TType::setQualifier): (TType::getNominalSize): (TType::setNominalSize): (TType::isMatrix): (TType::setMatrix): (TType::isArray): (TType::getArraySize): (TType::setArraySize): (TType::getMaxArraySize): (TType::setMaxArraySize): (TType::clearArrayness): (TType::setArrayInformationType): (TType::getArrayInformationType): (TType::isVector): (TType::isScalar): (TType::setStruct): (TType::getTypeName): (TType::setTypeName): (TType::isField): (TType::getFieldName): (TType::setFieldName): (TType::getBasicString): (TType::getPrecisionString): (TType::getQualifierString): * src/compiler/glslang.l: * src/compiler/glslang.y: * src/compiler/intermediate.h: (TIntermNode::getLine): (TIntermNode::setLine): (TIntermTyped::getAsTyped): (TIntermTyped::setType): (TIntermTyped::getType): (TIntermTyped::getTypePointer): (TIntermTyped::getBasicType): (TIntermTyped::getQualifier): (TIntermTyped::getPrecision): (TIntermTyped::getNominalSize): (TIntermTyped::isMatrix): (TIntermTyped::isArray): (TIntermTyped::isVector): (TIntermTyped::isScalar): (TIntermTyped::getBasicString): (TIntermTyped::getQualifierString): (TIntermSymbol::getId): (TIntermSymbol::getSymbol): (TIntermOperator::setOp): (TIntermBinary::setLeft): (TIntermBinary::setRight): (TIntermBinary::getLeft): (TIntermBinary::getRight): (TIntermUnary::setOperand): (TIntermUnary::getOperand): (TIntermAggregate::getAsAggregate): (TIntermAggregate::getSequence): (TIntermAggregate::setName): (TIntermAggregate::getName): (TIntermAggregate::setUserDefined): (TIntermAggregate::isUserDefined): (TIntermAggregate::getQualifier): (TIntermAggregate::setOptimize): (TIntermAggregate::setDebug): (TIntermSelection::getCondition): (TIntermSelection::getTrueBlock): (TIntermSelection::getFalseBlock): (TIntermSelection::getAsSelectionNode): * src/compiler/parseConst.cpp: (TConstTraverser::TConstTraverser): * src/compiler/preprocessor/atom.c: (InitAtomTable): * src/compiler/preprocessor/atom.h: * src/compiler/preprocessor/compile.h: * src/compiler/preprocessor/cpp.c: * src/compiler/preprocessor/cpp.h: * src/compiler/preprocessor/cppstruct.c: * src/compiler/preprocessor/memory.c: * src/compiler/preprocessor/memory.h: * src/compiler/preprocessor/parser.h: * src/compiler/preprocessor/preprocess.h: * src/compiler/preprocessor/scanner.c: * src/compiler/preprocessor/scanner.h: * src/compiler/preprocessor/slglobals.h: * src/compiler/preprocessor/symbols.c: (NewSymbol): * src/compiler/preprocessor/symbols.h: * src/compiler/preprocessor/tokens.c: (RecordToken): * src/compiler/preprocessor/tokens.h: * src/libEGL/Display.cpp: (egl::Display::Display): (egl::Display::initialize): (egl::Display::terminate): (egl::Display::createDevice): (egl::Display::createWindowSurface): (egl::Display::createContext): (egl::Display::getMultiSampleSupport): (egl::Display::getCompressedTextureSupport): * src/libEGL/Display.h: * src/libEGL/Surface.cpp: (egl::Surface::Surface): (egl::Surface::resetSwapChain): (egl::Surface::getWindowHandle): (egl::Surface::writeRecordableFlipState): (egl::Surface::applyFlipState): (egl::Surface::releaseRecordedState): (egl::Surface::checkForWindowResize): (egl::Surface::swap): * src/libEGL/Surface.h: * src/libEGL/libEGL.cpp: * src/libEGL/libEGL.vcproj: * src/libGLESv2/Blit.cpp: (gl::Blit::setVertexShader): (gl::Blit::setPixelShader): (gl::Blit::setFormatConvertShaders): * src/libGLESv2/Buffer.cpp: (gl::Buffer::Buffer): * src/libGLESv2/Buffer.h: * src/libGLESv2/Context.cpp: (gl::Context::Context): (gl::Context::~Context): (gl::Context::makeCurrent): (gl::Context::markAllStateDirty): (gl::Context::getReadFramebufferHandle): (gl::Context::getDrawFramebufferHandle): (gl::Context::getRenderbufferHandle): (gl::Context::getArrayBufferHandle): (gl::Context::setVertexAttribState): (gl::Context::createBuffer): (gl::Context::createProgram): (gl::Context::createShader): (gl::Context::createTexture): (gl::Context::createRenderbuffer): (gl::Context::deleteBuffer): (gl::Context::deleteShader): (gl::Context::deleteProgram): (gl::Context::deleteTexture): (gl::Context::deleteRenderbuffer): (gl::Context::getBuffer): (gl::Context::getShader): (gl::Context::getProgram): (gl::Context::getTexture): (gl::Context::getRenderbuffer): (gl::Context::getReadFramebuffer): (gl::Context::getDrawFramebuffer): (gl::Context::bindArrayBuffer): (gl::Context::bindElementArrayBuffer): (gl::Context::bindTexture2D): (gl::Context::bindTextureCubeMap): (gl::Context::bindReadFramebuffer): (gl::Context::bindDrawFramebuffer): (gl::Context::bindRenderbuffer): (gl::Context::useProgram): (gl::Context::setFramebufferZero): (gl::Context::setRenderbufferStorage): (gl::Context::getFramebuffer): (gl::Context::getArrayBuffer): (gl::Context::getElementArrayBuffer): (gl::Context::getCurrentProgram): (gl::Context::getTexture2D): (gl::Context::getTextureCubeMap): (gl::Context::getSamplerTexture): (gl::Context::getFloatv): (gl::Context::getIntegerv): (gl::Context::getQueryParameterInfo): (gl::Context::applyRenderTarget): (gl::Context::applyState): (gl::Context::applyIndexBuffer): (gl::Context::readPixels): (gl::Context::clear): (gl::Context::finish): (gl::Context::flush): (gl::Context::supportsShaderModel3): (gl::Context::getMaxSupportedSamples): (gl::Context::getNearestSupportedSamples): (gl::Context::supportsCompressedTextures): (gl::Context::detachBuffer): (gl::Context::detachTexture): (gl::Context::detachFramebuffer): (gl::Context::detachRenderbuffer): (gl::Context::getIncompleteTexture): (gl::Context::initExtensionString): (gl::Context::blitFramebuffer): * src/libGLESv2/Context.h: (gl::AttributeState::AttributeState): * src/libGLESv2/Framebuffer.cpp: (gl::Framebuffer::Framebuffer): (gl::Framebuffer::~Framebuffer): (gl::Framebuffer::lookupRenderbuffer): (gl::Framebuffer::setColorbuffer): (gl::Framebuffer::setDepthbuffer): (gl::Framebuffer::setStencilbuffer): (gl::Framebuffer::detachTexture): (gl::Framebuffer::detachRenderbuffer): (gl::Framebuffer::getRenderTargetSerial): (gl::Framebuffer::getRenderTarget): (gl::Framebuffer::getDepthStencil): (gl::Framebuffer::getDepthbufferSerial): (gl::Framebuffer::getStencilbufferSerial): (gl::Framebuffer::getColorbuffer): (gl::Framebuffer::getDepthbuffer): (gl::Framebuffer::getStencilbuffer): (gl::Framebuffer::getColorbufferHandle): (gl::Framebuffer::getDepthbufferHandle): (gl::Framebuffer::getStencilbufferHandle): (gl::Framebuffer::hasStencil): (gl::Framebuffer::isMultisample): (gl::Framebuffer::completeness): (gl::DefaultFramebuffer::DefaultFramebuffer): (gl::Framebuffer::getSamples): (gl::DefaultFramebuffer::completeness): * src/libGLESv2/Framebuffer.h: * src/libGLESv2/Program.cpp: (gl::Program::Program): (gl::Program::~Program): (gl::Program::attachShader): (gl::Program::detachShader): (gl::Program::linkVaryings): (gl::Program::link): (gl::Program::unlink): (gl::Program::release): (gl::Program::addRef): (gl::Program::getRefCount): (gl::Program::getDxViewportLocation): * src/libGLESv2/Program.h: * src/libGLESv2/RefCountObject.cpp: Added. (gl::RefCountObject::RefCountObject): (gl::RefCountObject::~RefCountObject): (gl::RefCountObject::addRef): (gl::RefCountObject::release): (gl::RefCountObjectBindingPointer::set): * src/libGLESv2/RefCountObject.h: Added. (gl::RefCountObject::id): (gl::RefCountObjectBindingPointer::RefCountObjectBindingPointer): (gl::RefCountObjectBindingPointer::~RefCountObjectBindingPointer): (gl::RefCountObjectBindingPointer::get): (gl::RefCountObjectBindingPointer::id): (gl::RefCountObjectBindingPointer::operator ! ): (gl::BindingPointer::set): (gl::BindingPointer::get): (gl::BindingPointer::operator -> ): * src/libGLESv2/Renderbuffer.cpp: (gl::Renderbuffer::Renderbuffer): (gl::Renderbuffer::~Renderbuffer): (gl::Renderbuffer::isColorbuffer): (gl::Renderbuffer::isDepthbuffer): (gl::Renderbuffer::isStencilbuffer): (gl::Renderbuffer::getRenderTarget): (gl::Renderbuffer::getDepthStencil): (gl::Renderbuffer::getWidth): (gl::Renderbuffer::getHeight): (gl::Renderbuffer::getFormat): (gl::Renderbuffer::getD3DFormat): (gl::Renderbuffer::getSerial): (gl::Renderbuffer::setStorage): (gl::RenderbufferStorage::RenderbufferStorage): (gl::RenderbufferStorage::~RenderbufferStorage): (gl::RenderbufferStorage::isColorbuffer): (gl::RenderbufferStorage::isDepthbuffer): (gl::RenderbufferStorage::isStencilbuffer): (gl::RenderbufferStorage::getRenderTarget): (gl::RenderbufferStorage::getDepthStencil): (gl::RenderbufferStorage::getWidth): (gl::RenderbufferStorage::getHeight): (gl::RenderbufferStorage::setSize): (gl::RenderbufferStorage::getFormat): (gl::RenderbufferStorage::getD3DFormat): (gl::RenderbufferStorage::getSamples): (gl::RenderbufferStorage::getSerial): (gl::RenderbufferStorage::issueSerial): (gl::Colorbuffer::Colorbuffer): (gl::Colorbuffer::isColorbuffer): (gl::Colorbuffer::getRedSize): (gl::Colorbuffer::getGreenSize): (gl::Colorbuffer::getBlueSize): (gl::Colorbuffer::getAlphaSize): (gl::DepthStencilbuffer::DepthStencilbuffer): (gl::DepthStencilbuffer::~DepthStencilbuffer): (gl::DepthStencilbuffer::isDepthbuffer): (gl::DepthStencilbuffer::isStencilbuffer): (gl::DepthStencilbuffer::getDepthSize): (gl::DepthStencilbuffer::getStencilSize): (gl::DepthStencilbuffer::getDepthStencil): (gl::Depthbuffer::Depthbuffer): (gl::Depthbuffer::~Depthbuffer): (gl::Depthbuffer::isDepthbuffer): (gl::Depthbuffer::isStencilbuffer): (gl::Stencilbuffer::Stencilbuffer): (gl::Stencilbuffer::~Stencilbuffer): (gl::Stencilbuffer::isDepthbuffer): (gl::Stencilbuffer::isStencilbuffer): * src/libGLESv2/Renderbuffer.h: (gl::Renderbuffer::getStorage): * src/libGLESv2/ResourceManager.cpp: Added. (gl::ResourceManager::ResourceManager): (gl::ResourceManager::~ResourceManager): (gl::ResourceManager::addRef): (gl::ResourceManager::release): (gl::ResourceManager::createBuffer): (gl::ResourceManager::createShader): (gl::ResourceManager::createProgram): (gl::ResourceManager::createTexture): (gl::ResourceManager::createRenderbuffer): (gl::ResourceManager::deleteBuffer): (gl::ResourceManager::deleteShader): (gl::ResourceManager::deleteProgram): (gl::ResourceManager::deleteTexture): (gl::ResourceManager::deleteRenderbuffer): (gl::ResourceManager::getBuffer): (gl::ResourceManager::getShader): (gl::ResourceManager::getTexture): (gl::ResourceManager::getProgram): (gl::ResourceManager::getRenderbuffer): (gl::ResourceManager::setRenderbuffer): (gl::ResourceManager::checkBufferAllocation): (gl::ResourceManager::checkTextureAllocation): (gl::ResourceManager::checkRenderbufferAllocation): * src/libGLESv2/ResourceManager.h: Added. * src/libGLESv2/Shader.cpp: (gl::Shader::Shader): (gl::Shader::addRef): (gl::Shader::release): (gl::Shader::getRefCount): (gl::Shader::parseVaryings): (gl::VertexShader::VertexShader): (gl::FragmentShader::FragmentShader): * src/libGLESv2/Shader.h: * src/libGLESv2/Texture.cpp: (gl::Texture::Image::Image): (gl::Texture::Texture): (gl::Texture::getBlitter): (gl::Texture::selectFormat): (gl::Texture::loadImageData): (gl::Texture::loadAlphaImageData): (gl::Texture::loadLuminanceImageData): (gl::Texture::loadLuminanceAlphaImageData): (gl::Texture::loadRGBUByteImageData): (gl::Texture::loadRGB565ImageData): (gl::Texture::loadRGBAUByteImageData): (gl::Texture::loadRGBA4444ImageData): (gl::Texture::loadRGBA5551ImageData): (gl::Texture::loadBGRAImageData): (gl::Texture::createSurface): (gl::Texture::setImage): (gl::Texture::setCompressedImage): (gl::Texture::subImage): (gl::Texture::subImageCompressed): (gl::Texture2D::Texture2D): (gl::Texture2D::getFormat): (gl::Texture2D::setCompressedImage): (gl::Texture2D::subImage): (gl::Texture2D::subImageCompressed): (gl::Texture2D::copyImage): (gl::Texture2D::copySubImage): (gl::Texture2D::isCompressed): (gl::Texture2D::getColorbuffer): (gl::TextureCubeMap::TextureCubeMap): (gl::TextureCubeMap::getFormat): (gl::TextureCubeMap::setCompressedImage): (gl::TextureCubeMap::subImage): (gl::TextureCubeMap::subImageCompressed): (gl::TextureCubeMap::isCompressed): (gl::TextureCubeMap::copyImage): (gl::TextureCubeMap::copySubImage): (gl::TextureCubeMap::getColorbuffer): (gl::Texture::TextureColorbufferProxy::addRef): (gl::Texture::TextureColorbufferProxy::release): (gl::Texture::TextureColorbufferProxy::getWidth): (gl::Texture::TextureColorbufferProxy::getHeight): (gl::Texture::TextureColorbufferProxy::getFormat): * src/libGLESv2/Texture.h: * src/libGLESv2/libGLESv2.cpp: * src/libGLESv2/libGLESv2.def: * src/libGLESv2/libGLESv2.vcproj: * src/libGLESv2/main.h: * src/libGLESv2/utilities.cpp: (gl::ComputeCompressedPitch): (gl::ComputeCompressedSize): (gl::IsCompressed): (gl::ComputePixelSize): (gl::CheckTextureFormatType): (es2dx::ConvertRenderbufferFormat): (es2dx::GetSamplesFromMultisampleType): (es2dx::GetMultisampleTypeFromSamples): * src/libGLESv2/utilities.h: 2010-08-17 Chris Marrin Unreviewed. Moved previous link error fix to Base.xcconfig. * ANGLE.xcodeproj/project.pbxproj: * Configurations/Base.xcconfig: 2010-08-17 Chris Marrin Unreviewed. Got rid of link errors in WebCore. Changed GCC_INLINES_ARE_PRIVATE_EXTERN to YES and GCC_SYMBOLS_PRIVATE_EXTERN to NO to match WebCore flags. * ANGLE.xcodeproj/project.pbxproj: 2010-08-04 Kenneth Russell Reviewed by Dimitri Glazkov. Update ANGLE to r352 https://bugs.webkit.org/show_bug.cgi?id=43500 Updated ANGLE to r352 (July 26, 2010). Built WebKit to test. * include/GLSLANG/ShaderLang.h: * src/compiler/Initialize.cpp: (BuiltInFunctionsCommon): (BuiltInFunctionsVertex): (BuiltInFunctionsFragment): (StandardUniforms): (DefaultPrecisionVertex): (DefaultPrecisionFragment): (BuiltInConstants): (TBuiltIns::initialize): (IdentifyBuiltIns): * src/compiler/Initialize.h: (TBuiltIns::getBuiltInStrings): * src/compiler/OutputGLSL.cpp: (TOutputGLSL::visitSelection): * src/compiler/ShHandle.h: (TCompiler::getLanguage): (TCompiler::getSpec): (TCompiler::getSymbolTable): (TCompiler::getInfoSink): * src/compiler/ShaderLang.cpp: (InitializeSymbolTable): (GenerateBuiltInSymbolTable): (ShInitialize): (ShConstructCompiler): (ShFinalize): (ShCompile): * src/compiler/SymbolTable.h: (TSymbolTable::atBuiltInLevel): (TSymbolTable::atGlobalLevel): (TSymbolTable::push): (TSymbolTable::getGlobalLevel): (TSymbolTable::currentLevel): * src/libGLESv2/Shader.cpp: (gl::Shader::Shader): (gl::Shader::compileToHLSL): 2010-08-03 Mark Rowe Rubber-stamped by Adele Peterson. Remove some unnecessary files from the ANGLE tree. * src/compiler/tools/COPYING.bison: Removed. * src/compiler/tools/COPYING.flex: Removed. * src/compiler/tools/README: Removed. * src/compiler/tools/bison.hairy: Removed. * src/compiler/tools/bison.simple: Removed. 2010-08-03 Mark Rowe Rubber-stamped by Adele Peterson. Clean up the ANGLE Xcode project. Main changes include: • Adding a Production configuration. • Modifying the library name from libangle.a to libANGLE.a. • Installing the headers in a subdirectory of /usr/local/include to avoid polluting the top-level directory. • Generating derived sources in to the built products directory so they're saved along with the symroot. • Switching to using .xcconfig files for maximum cleanliness. * ANGLE.xcodeproj/project.pbxproj: * Configurations/ANGLE.xcconfig: Added. * Configurations/Base.xcconfig: Added. * Configurations/DebugRelease.xcconfig: Added. 2010-08-02 Paul Sawaya Reviewed by Adele Peterson. Add ANGLE library to WebKit. From the repository (http://angleproject.googlecode.com) as of July 22. https://bugs.webkit.org/show_bug.cgi?id=42789