Edit

kc3-lang/angle/include/platform/FrontendFeatures.h

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2019-06-19 16:20:09
    Hash : bce4b9f8
    Message : Always scalarize mat and vec constructor arguments. This workaround is always enabled in Chrome, do the same in ANGLE. BUG=882580 Change-Id: I2c01f34a589b07bd0035d7408be884f7a51b1706 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666699 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>

  • include/platform/FrontendFeatures.h
  • //
    // Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    // FrontendFeatures.h: Features/workarounds for driver bugs and other behaviors seen
    // on all platforms.
    
    #ifndef ANGLE_PLATFORM_FRONTENDFEATURES_H_
    #define ANGLE_PLATFORM_FRONTENDFEATURES_H_
    
    #include "platform/Feature.h"
    
    namespace angle
    {
    
    struct FrontendFeatures : angle::FeatureSetBase
    {
        FrontendFeatures();
        ~FrontendFeatures();
    
        // Force the context to be lost (via KHR_robustness) if a GL_OUT_OF_MEMORY error occurs. The
        // driver may be in an inconsistent state if this happens, and some users of ANGLE rely on this
        // notification to prevent further execution.
        angle::Feature loseContextOnOutOfMemory = {
            "lose_context_on_out_of_memory", angle::FeatureCategory::FrontendWorkarounds,
            "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY "
            "error occurs",
            &members};
    
        // Program binaries don't contain transform feedback varyings on Qualcomm GPUs.
        // Work around this by disabling the program cache for programs with transform feedback.
        angle::Feature disableProgramCachingForTransformFeedback = {
            "disable_program_caching_for_transform_feedback",
            angle::FeatureCategory::FrontendWorkarounds,
            "On Qualcomm GPUs, program binaries don't contain transform feedback varyings", &members};
    
        // On Windows Intel OpenGL drivers TexImage sometimes seems to interact with the Framebuffer.
        // Flaky crashes can occur unless we sync the Framebuffer bindings. The workaround is to add
        // Framebuffer binding dirty bits to TexImage updates. See http://anglebug.com/2906
        angle::Feature syncFramebufferBindingsOnTexImage = {
            "sync_framebuffer_bindings_on_tex_image", angle::FeatureCategory::FrontendWorkarounds,
            "On Windows Intel OpenGL drivers TexImage sometimes seems to interact "
            "with the Framebuffer",
            &members};
    
        angle::Feature scalarizeVecAndMatConstructorArgs = {
            "scalarize_vec_and_mat_constructor_args", angle::FeatureCategory::FrontendWorkarounds,
            "Always rewrite vec/mat constructors to be consistent", &members,
            "http://crbug.com/398694"};
    };
    
    inline FrontendFeatures::FrontendFeatures()  = default;
    inline FrontendFeatures::~FrontendFeatures() = default;
    
    }  // namespace angle
    
    #endif  // ANGLE_PLATFORM_FRONTENDFEATURES_H_