Hash :
955adb77
        
        Author :
  
        
        Date :
2022-08-12T10:14:48
        
      
Cache compiled shader By storing the compiled shader in the blob cache, the time to recompile the same shader is reduced. Based on work by <hckim.kim@samsung.com> Bug: angleproject:7036 Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_features.py using data from frontend_features.json.
//
// Copyright 2022 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_autogen.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 : FeatureSetBase
{
    FrontendFeatures();
    ~FrontendFeatures();
    FeatureInfo loseContextOnOutOfMemory = {
        "loseContextOnOutOfMemory",
        FeatureCategory::FrontendWorkarounds,
        "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs",
        &members,
    };
    FeatureInfo disableProgramCachingForTransformFeedback = {
        "disableProgramCachingForTransformFeedback",
        FeatureCategory::FrontendWorkarounds,
        "On some GPUs, program binaries don't contain transform feedback varyings",
        &members,
    };
    FeatureInfo scalarizeVecAndMatConstructorArgs = {
        "scalarizeVecAndMatConstructorArgs", FeatureCategory::FrontendWorkarounds,
        "Always rewrite vec/mat constructors to be consistent", &members,
        "http://crbug.com/1165751"};
    FeatureInfo disableProgramBinary = {"disableProgramBinary", FeatureCategory::FrontendFeatures,
                                        "Disable support for GL_OES_get_program_binary", &members,
                                        "http://anglebug.com/5007"};
    FeatureInfo disableAnisotropicFiltering = {
        "disableAnisotropicFiltering",
        FeatureCategory::FrontendWorkarounds,
        "Disable support for anisotropic filtering",
        &members,
    };
    FeatureInfo allowCompressedFormats = {
        "allowCompressedFormats",
        FeatureCategory::FrontendWorkarounds,
        "Allow compressed formats",
        &members,
    };
    FeatureInfo forceDepthAttachmentInitOnClear = {
        "forceDepthAttachmentInitOnClear", FeatureCategory::FrontendWorkarounds,
        "Force depth attachment initialization on clear ops", &members,
        "https://anglebug.com/7246"};
    FeatureInfo enableCaptureLimits = {"enableCaptureLimits", FeatureCategory::FrontendFeatures,
                                       "Set the context limits like frame capturing was enabled",
                                       &members, "http://anglebug.com/5750"};
    FeatureInfo enableCompressingPipelineCacheInThreadPool = {
        "enableCompressingPipelineCacheInThreadPool", FeatureCategory::FrontendWorkarounds,
        "Enable compressing pipeline cache in thread pool.", &members, "http://anglebug.com/4722"};
    FeatureInfo forceRobustResourceInit = {
        "forceRobustResourceInit", FeatureCategory::FrontendFeatures,
        "Force-enable robust resource init", &members, "http://anglebug.com/6041"};
    FeatureInfo forceInitShaderVariables = {
        "forceInitShaderVariables",
        FeatureCategory::FrontendFeatures,
        "Force-enable shader variable initialization",
        &members,
    };
    FeatureInfo enableProgramBinaryForCapture = {
        "enableProgramBinaryForCapture", FeatureCategory::FrontendFeatures,
        "Even if FrameCapture is enabled, enable GL_OES_get_program_binary", &members,
        "http://anglebug.com/5658"};
    FeatureInfo forceGlErrorChecking = {
        "forceGlErrorChecking", FeatureCategory::FrontendFeatures,
        "Force GL error checking (i.e. prevent applications from disabling error checking",
        &members, "https://issuetracker.google.com/220069903"};
    FeatureInfo emulatePixelLocalStorage = {
        "emulatePixelLocalStorage", FeatureCategory::FrontendFeatures,
        "Emulate ANGLE_shader_pixel_local_storage using shader images", &members,
        "http://anglebug.com/7279"};
    FeatureInfo cacheCompiledShader = {"cacheCompiledShader", FeatureCategory::FrontendFeatures,
                                       "Enable to cache compiled shaders", &members,
                                       "http://anglebug.com/7036"};
};
inline FrontendFeatures::FrontendFeatures()  = default;
inline FrontendFeatures::~FrontendFeatures() = default;
}  // namespace angle
#endif  // ANGLE_PLATFORM_FRONTENDFEATURES_H_