FeaturesD3D_autogen.h (7698B)
1 // GENERATED FILE - DO NOT EDIT. 2 // Generated by gen_features.py using data from d3d_features.json. 3 // 4 // Copyright 2022 The ANGLE Project Authors. All rights reserved. 5 // Use of this source code is governed by a BSD-style license that can be 6 // found in the LICENSE file. 7 // 8 // FeaturesD3D_autogen.h: Features and workarounds for D3D driver bugs and other issues. 9 10 #ifndef ANGLE_PLATFORM_FEATURESD3D_H_ 11 #define ANGLE_PLATFORM_FEATURESD3D_H_ 12 13 #include "platform/Feature.h" 14 15 namespace angle 16 { 17 18 struct FeaturesD3D : FeatureSetBase 19 { 20 FeaturesD3D(); 21 ~FeaturesD3D(); 22 23 FeatureInfo mrtPerfWorkaround = { 24 "mrtPerfWorkaround", 25 FeatureCategory::D3DWorkarounds, 26 "Some drivers have a bug where they ignore null render targets", 27 &members, 28 }; 29 30 FeatureInfo setDataFasterThanImageUpload = { 31 "setDataFasterThanImageUpload", 32 FeatureCategory::D3DWorkarounds, 33 "Set data faster than image upload", 34 &members, 35 }; 36 37 FeatureInfo setDataFasterThanImageUploadOn128bitFormats = { 38 "setDataFasterThanImageUploadOn128bitFormats", 39 FeatureCategory::D3DWorkarounds, 40 "Set data faster than image upload on 128bit formats", 41 &members, 42 }; 43 44 FeatureInfo zeroMaxLodWorkaround = { 45 "zeroMaxLodWorkaround", 46 FeatureCategory::D3DWorkarounds, 47 "Missing an option to disable mipmaps on a mipmapped texture", 48 &members, 49 }; 50 51 FeatureInfo useInstancedPointSpriteEmulation = { 52 "useInstancedPointSpriteEmulation", 53 FeatureCategory::D3DWorkarounds, 54 "Some D3D11 renderers do not support geometry shaders for pointsprite emulation", 55 &members, 56 }; 57 58 FeatureInfo depthStencilBlitExtraCopy = { 59 "depthStencilBlitExtraCopy", FeatureCategory::D3DWorkarounds, 60 "Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging " 61 "texture to a depth/stencil", 62 &members, "http://anglebug.com/1452"}; 63 64 FeatureInfo expandIntegerPowExpressions = { 65 "expandIntegerPowExpressions", 66 FeatureCategory::D3DWorkarounds, 67 "The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions", 68 &members, 69 }; 70 71 FeatureInfo flushAfterEndingTransformFeedback = { 72 "flushAfterEndingTransformFeedback", 73 FeatureCategory::D3DWorkarounds, 74 "Some drivers sometimes write out-of-order results to StreamOut buffers when transform " 75 "feedback is used to repeatedly write to the same buffer positions", 76 &members, 77 }; 78 79 FeatureInfo getDimensionsIgnoresBaseLevel = { 80 "getDimensionsIgnoresBaseLevel", 81 FeatureCategory::D3DWorkarounds, 82 "Some drivers do not take into account the base level of the " 83 "texture in the results of the HLSL GetDimensions builtin", 84 &members, 85 }; 86 87 FeatureInfo preAddTexelFetchOffsets = { 88 "preAddTexelFetchOffsets", 89 FeatureCategory::D3DWorkarounds, 90 "HLSL's function texture.Load returns 0 when the parameter Location is negative, even if " 91 "the sum of Offset and Location is in range", 92 &members, 93 }; 94 95 FeatureInfo emulateTinyStencilTextures = { 96 "emulateTinyStencilTextures", 97 FeatureCategory::D3DWorkarounds, 98 "1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly", 99 &members, 100 }; 101 102 FeatureInfo disableB5G6R5Support = { 103 "disableB5G6R5Support", 104 FeatureCategory::D3DWorkarounds, 105 "Textures with the format " 106 "DXGI_FORMAT_B5G6R5_UNORM have incorrect data", 107 &members, 108 }; 109 110 FeatureInfo rewriteUnaryMinusOperator = { 111 "rewriteUnaryMinusOperator", 112 FeatureCategory::D3DWorkarounds, 113 "Evaluating unary minus operator on integer may get wrong answer in vertex shaders", 114 &members, 115 }; 116 117 FeatureInfo emulateIsnanFloat = {"emulateIsnanFloat", FeatureCategory::D3DWorkarounds, 118 "Using isnan() on highp float will get wrong answer", &members, 119 "https://crbug.com/650547"}; 120 121 FeatureInfo callClearTwice = {"callClearTwice", FeatureCategory::D3DWorkarounds, 122 "Using clear() may not take effect", &members, 123 "https://crbug.com/655534"}; 124 125 FeatureInfo emulateClearViewAfterDualSourceBlending = { 126 "emulateClearViewAfterDualSourceBlending", FeatureCategory::D3DWorkarounds, 127 "On Sandybridge, calling ClearView after using dual source blending causes hardware to " 128 "hang", 129 &members, "https://bugzilla.mozilla.org/show_bug.cgi?id=1633628"}; 130 131 FeatureInfo scissoredClearArtifacts = { 132 "scissoredClearArtifacts", FeatureCategory::D3DWorkarounds, 133 "On Skylake, calling ClearView with a scissor rect that is not a multiple of 8x4 pixels " 134 "causes corruption of pixels in the 8x4 pixel tiles along the edge which resembles a " 135 "square wave", 136 &members, "https://bugzilla.mozilla.org/show_bug.cgi?id=1817240"}; 137 138 FeatureInfo useSystemMemoryForConstantBuffers = { 139 "useSystemMemoryForConstantBuffers", FeatureCategory::D3DWorkarounds, 140 "Copying from staging storage to constant buffer " 141 "storage does not work", 142 &members, "https://crbug.com/593024"}; 143 144 FeatureInfo selectViewInGeometryShader = { 145 "selectViewInGeometryShader", 146 FeatureCategory::D3DWorkarounds, 147 "The viewport or render target slice will be selected in the geometry shader stage for " 148 "the ANGLE_multiview extension", 149 &members, 150 }; 151 152 FeatureInfo addMockTextureNoRenderTarget = { 153 "addMockTextureNoRenderTarget", FeatureCategory::D3DWorkarounds, 154 "On some drivers when rendering with no render target, two bugs lead to incorrect behavior", 155 &members, "http://anglebug.com/2152"}; 156 157 FeatureInfo skipVSConstantRegisterZero = { 158 "skipVSConstantRegisterZero", 159 FeatureCategory::D3DWorkarounds, 160 "In specific cases the driver doesn't handle constant register zero correctly", 161 &members, 162 }; 163 164 FeatureInfo forceAtomicValueResolution = { 165 "forceAtomicValueResolution", FeatureCategory::D3DWorkarounds, 166 "On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve " 167 "when used in the .yzw components of a RWByteAddressBuffer.Store operation", 168 &members, "http://anglebug.com/3246"}; 169 170 FeatureInfo allowClearForRobustResourceInit = { 171 "allowClearForRobustResourceInit", FeatureCategory::D3DWorkarounds, 172 "Some drivers corrupt texture data when clearing for robust resource initialization.", 173 &members, "http://crbug.com/941620"}; 174 175 FeatureInfo allowTranslateUniformBlockToStructuredBuffer = { 176 "allowTranslateUniformBlockToStructuredBuffer", FeatureCategory::D3DWorkarounds, 177 "There is a slow fxc compile performance issue with dynamic uniform indexing if " 178 "translating a uniform block with a large array member to cbuffer.", 179 &members, "http://anglebug.com/3682"}; 180 181 FeatureInfo allowES3OnFL100 = { 182 "allowES3OnFL100", 183 FeatureCategory::D3DWorkarounds, 184 "Allow ES3 on 10.0 devices", 185 &members, 186 }; 187 188 FeatureInfo disableRasterizerOrderViews = { 189 "disableRasterizerOrderViews", FeatureCategory::D3DWorkarounds, "Disable ROVs for testing", 190 &members, "http://anglebug.com/7279"}; 191 }; 192 193 inline FeaturesD3D::FeaturesD3D() = default; 194 inline FeaturesD3D::~FeaturesD3D() = default; 195 196 } // namespace angle 197 198 #endif // ANGLE_PLATFORM_FEATURESD3D_H_