summaryrefslogtreecommitdiffstats
path: root/gfx/angle/checkout/include/platform/FrontendFeatures.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /gfx/angle/checkout/include/platform/FrontendFeatures.h
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'gfx/angle/checkout/include/platform/FrontendFeatures.h')
-rw-r--r--gfx/angle/checkout/include/platform/FrontendFeatures.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/gfx/angle/checkout/include/platform/FrontendFeatures.h b/gfx/angle/checkout/include/platform/FrontendFeatures.h
new file mode 100644
index 0000000000..2c0ad33816
--- /dev/null
+++ b/gfx/angle/checkout/include/platform/FrontendFeatures.h
@@ -0,0 +1,59 @@
+//
+// 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_