diff options
Diffstat (limited to 'gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h')
-rw-r--r-- | gfx/angle/checkout/include/platform/FeaturesD3D_autogen.h | 198 |
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_ |