summaryrefslogtreecommitdiffstats
path: root/gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h')
-rw-r--r--gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h198
1 files changed, 198 insertions, 0 deletions
diff --git a/gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h b/gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h
new file mode 100644
index 0000000000..0df072b497
--- /dev/null
+++ b/gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h
@@ -0,0 +1,198 @@
+// GENERATED FILE - DO NOT EDIT.
+// Generated by gen_features.py using data from d3d_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.
+//
+// FeaturesD3D_autogen.h: Features and workarounds for D3D driver bugs and other issues.
+
+#ifndef ANGLE_PLATFORM_FEATURESD3D_H_
+#define ANGLE_PLATFORM_FEATURESD3D_H_
+
+#include "platform/Feature.h"
+
+namespace angle
+{
+
+struct FeaturesD3D : FeatureSetBase
+{
+ FeaturesD3D();
+ ~FeaturesD3D();
+
+ FeatureInfo mrtPerfWorkaround = {
+ "mrtPerfWorkaround",
+ FeatureCategory::D3DWorkarounds,
+ "Some drivers have a bug where they ignore null render targets",
+ &members,
+ };
+
+ FeatureInfo setDataFasterThanImageUpload = {
+ "setDataFasterThanImageUpload",
+ FeatureCategory::D3DWorkarounds,
+ "Set data faster than image upload",
+ &members,
+ };
+
+ FeatureInfo setDataFasterThanImageUploadOn128bitFormats = {
+ "setDataFasterThanImageUploadOn128bitFormats",
+ FeatureCategory::D3DWorkarounds,
+ "Set data faster than image upload on 128bit formats",
+ &members,
+ };
+
+ FeatureInfo zeroMaxLodWorkaround = {
+ "zeroMaxLodWorkaround",
+ FeatureCategory::D3DWorkarounds,
+ "Missing an option to disable mipmaps on a mipmapped texture",
+ &members,
+ };
+
+ FeatureInfo useInstancedPointSpriteEmulation = {
+ "useInstancedPointSpriteEmulation",
+ FeatureCategory::D3DWorkarounds,
+ "Some D3D11 renderers do not support geometry shaders for pointsprite emulation",
+ &members,
+ };
+
+ FeatureInfo depthStencilBlitExtraCopy = {
+ "depthStencilBlitExtraCopy", FeatureCategory::D3DWorkarounds,
+ "Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging "
+ "texture to a depth/stencil",
+ &members, "http://anglebug.com/1452"};
+
+ FeatureInfo expandIntegerPowExpressions = {
+ "expandIntegerPowExpressions",
+ FeatureCategory::D3DWorkarounds,
+ "The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions",
+ &members,
+ };
+
+ FeatureInfo flushAfterEndingTransformFeedback = {
+ "flushAfterEndingTransformFeedback",
+ FeatureCategory::D3DWorkarounds,
+ "Some drivers sometimes write out-of-order results to StreamOut buffers when transform "
+ "feedback is used to repeatedly write to the same buffer positions",
+ &members,
+ };
+
+ FeatureInfo getDimensionsIgnoresBaseLevel = {
+ "getDimensionsIgnoresBaseLevel",
+ FeatureCategory::D3DWorkarounds,
+ "Some drivers do not take into account the base level of the "
+ "texture in the results of the HLSL GetDimensions builtin",
+ &members,
+ };
+
+ FeatureInfo preAddTexelFetchOffsets = {
+ "preAddTexelFetchOffsets",
+ FeatureCategory::D3DWorkarounds,
+ "HLSL's function texture.Load returns 0 when the parameter Location is negative, even if "
+ "the sum of Offset and Location is in range",
+ &members,
+ };
+
+ FeatureInfo emulateTinyStencilTextures = {
+ "emulateTinyStencilTextures",
+ FeatureCategory::D3DWorkarounds,
+ "1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly",
+ &members,
+ };
+
+ FeatureInfo disableB5G6R5Support = {
+ "disableB5G6R5Support",
+ FeatureCategory::D3DWorkarounds,
+ "Textures with the format "
+ "DXGI_FORMAT_B5G6R5_UNORM have incorrect data",
+ &members,
+ };
+
+ FeatureInfo rewriteUnaryMinusOperator = {
+ "rewriteUnaryMinusOperator",
+ FeatureCategory::D3DWorkarounds,
+ "Evaluating unary minus operator on integer may get wrong answer in vertex shaders",
+ &members,
+ };
+
+ FeatureInfo emulateIsnanFloat = {"emulateIsnanFloat", FeatureCategory::D3DWorkarounds,
+ "Using isnan() on highp float will get wrong answer", &members,
+ "https://crbug.com/650547"};
+
+ FeatureInfo callClearTwice = {"callClearTwice", FeatureCategory::D3DWorkarounds,
+ "Using clear() may not take effect", &members,
+ "https://crbug.com/655534"};
+
+ FeatureInfo emulateClearViewAfterDualSourceBlending = {
+ "emulateClearViewAfterDualSourceBlending", FeatureCategory::D3DWorkarounds,
+ "On Sandybridge, calling ClearView after using dual source blending causes hardware to "
+ "hang",
+ &members, "https://bugzilla.mozilla.org/show_bug.cgi?id=1633628"};
+
+ FeatureInfo scissoredClearArtifacts = {
+ "scissoredClearArtifacts", FeatureCategory::D3DWorkarounds,
+ "On Skylake, calling ClearView with a scissor rect that is not a multiple of 8x4 pixels "
+ "causes corruption of pixels in the 8x4 pixel tiles along the edge which resembles a "
+ "square wave",
+ &members, "https://bugzilla.mozilla.org/show_bug.cgi?id=1817240"};
+
+ FeatureInfo useSystemMemoryForConstantBuffers = {
+ "useSystemMemoryForConstantBuffers", FeatureCategory::D3DWorkarounds,
+ "Copying from staging storage to constant buffer "
+ "storage does not work",
+ &members, "https://crbug.com/593024"};
+
+ FeatureInfo selectViewInGeometryShader = {
+ "selectViewInGeometryShader",
+ FeatureCategory::D3DWorkarounds,
+ "The viewport or render target slice will be selected in the geometry shader stage for "
+ "the ANGLE_multiview extension",
+ &members,
+ };
+
+ FeatureInfo addMockTextureNoRenderTarget = {
+ "addMockTextureNoRenderTarget", FeatureCategory::D3DWorkarounds,
+ "On some drivers when rendering with no render target, two bugs lead to incorrect behavior",
+ &members, "http://anglebug.com/2152"};
+
+ FeatureInfo skipVSConstantRegisterZero = {
+ "skipVSConstantRegisterZero",
+ FeatureCategory::D3DWorkarounds,
+ "In specific cases the driver doesn't handle constant register zero correctly",
+ &members,
+ };
+
+ FeatureInfo forceAtomicValueResolution = {
+ "forceAtomicValueResolution", FeatureCategory::D3DWorkarounds,
+ "On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve "
+ "when used in the .yzw components of a RWByteAddressBuffer.Store operation",
+ &members, "http://anglebug.com/3246"};
+
+ FeatureInfo allowClearForRobustResourceInit = {
+ "allowClearForRobustResourceInit", FeatureCategory::D3DWorkarounds,
+ "Some drivers corrupt texture data when clearing for robust resource initialization.",
+ &members, "http://crbug.com/941620"};
+
+ FeatureInfo allowTranslateUniformBlockToStructuredBuffer = {
+ "allowTranslateUniformBlockToStructuredBuffer", FeatureCategory::D3DWorkarounds,
+ "There is a slow fxc compile performance issue with dynamic uniform indexing if "
+ "translating a uniform block with a large array member to cbuffer.",
+ &members, "http://anglebug.com/3682"};
+
+ FeatureInfo allowES3OnFL100 = {
+ "allowES3OnFL100",
+ FeatureCategory::D3DWorkarounds,
+ "Allow ES3 on 10.0 devices",
+ &members,
+ };
+
+ FeatureInfo disableRasterizerOrderViews = {
+ "disableRasterizerOrderViews", FeatureCategory::D3DWorkarounds, "Disable ROVs for testing",
+ &members, "http://anglebug.com/7279"};
+};
+
+inline FeaturesD3D::FeaturesD3D() = default;
+inline FeaturesD3D::~FeaturesD3D() = default;
+
+} // namespace angle
+
+#endif // ANGLE_PLATFORM_FEATURESD3D_H_