Hash :
65f4d2a4
Author :
Date :
2023-04-17T10:08:18
Adds features to enable loading/saving metallibs to blobcache CompileMetalShaders results in the appropriate command line tool being run to generate metallib blobs from shader source. DisableProgramCaching results in not saving programs to BlobCache LoadMetalShadersFromBlobCache results in trying to load metallibs from BlobCache. Bug: chromium:1423136 Change-Id: I01a4d7a5d60ed5ac978fb99db01b741e0f19e76b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4434293 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org>
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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
// 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 disableDrawBuffersIndexed = {
"disableDrawBuffersIndexed", FeatureCategory::FrontendFeatures,
"Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed", &members,
"http://anglebug.com/7724"};
FeatureInfo disableAnisotropicFiltering = {
"disableAnisotropicFiltering",
FeatureCategory::FrontendWorkarounds,
"Disable support for anisotropic filtering",
&members,
};
FeatureInfo allowCompressedFormats = {
"allowCompressedFormats",
FeatureCategory::FrontendWorkarounds,
"Allow compressed formats",
&members,
};
FeatureInfo singleThreadedTextureDecompression = {
"singleThreadedTextureDecompression",
FeatureCategory::FrontendWorkarounds,
"Disables multi-threaded decompression of compressed texture 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 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"};
FeatureInfo dumpShaderSource = {"dumpShaderSource", FeatureCategory::FrontendFeatures,
"Write shader source to temp directory", &members,
"http://anglebug.com/7760"};
FeatureInfo enableShaderSubstitution = {
"enableShaderSubstitution", FeatureCategory::FrontendWorkarounds,
"Check the filesystem for shaders to use instead of those provided through glShaderSource",
&members, "http://anglebug.com/7761"};
FeatureInfo disableProgramCaching = {"disableProgramCaching", FeatureCategory::FrontendFeatures,
"Disables saving programs to the cache", &members,
"http://anglebug.com/1423136"};
};
inline FrontendFeatures::FrontendFeatures() = default;
inline FrontendFeatures::~FrontendFeatures() = default;
} // namespace angle
#endif // ANGLE_PLATFORM_FRONTENDFEATURES_H_