• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2    "description": [
3        "Copyright 2022 The ANGLE Project Authors. All rights reserved.",
4        "Use of this source code is governed by a BSD-style license that can be",
5        "found in the LICENSE file.",
6        "",
7        "d3d_features.json: Features and workarounds for D3D driver bugs and other issues."
8    ],
9    "features": [
10        {
11            "name": "border_color_srgb",
12            "category": "Workarounds",
13            "description": [
14                "Some drivers expect sRGB border color for sRGB texture formats"
15            ]
16        },
17        {
18            "name": "mrt_perf_workaround",
19            "category": "Workarounds",
20            "description": [
21                "Some drivers have a bug where they ignore null render targets"
22            ]
23        },
24        {
25            "name": "set_data_faster_than_image_upload",
26            "category": "Workarounds",
27            "description": [
28                "Set data faster than image upload"
29            ]
30        },
31        {
32            "name": "zero_max_lod_workaround",
33            "category": "Workarounds",
34            "description": [
35                "Missing an option to disable mipmaps on a mipmapped texture"
36            ]
37        },
38        {
39            "name": "use_instanced_point_sprite_emulation",
40            "category": "Workarounds",
41            "description": [
42                "Some D3D11 renderers do not support geometry shaders for pointsprite emulation"
43            ]
44        },
45        {
46            "name": "depth_stencil_blit_extra_copy",
47            "category": "Workarounds",
48            "description": [
49                "Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging ",
50                "texture to a depth/stencil"
51            ],
52            "issue": "http://anglebug.com/1452"
53        },
54        {
55            "name": "expand_integer_pow_expressions",
56            "category": "Workarounds",
57            "description": [
58                "The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions"
59            ]
60        },
61        {
62            "name": "flush_after_ending_transform_feedback",
63            "category": "Workarounds",
64            "description": [
65                "Some drivers sometimes write out-of-order results to StreamOut buffers when transform ",
66                "feedback is used to repeatedly write to the same buffer positions"
67            ]
68        },
69        {
70            "name": "get_dimensions_ignores_base_level",
71            "category": "Workarounds",
72            "description": [
73                "Some drivers do not take into account the base level of the ",
74                "texture in the results of the HLSL GetDimensions builtin"
75            ]
76        },
77        {
78            "name": "pre_add_texel_fetch_offsets",
79            "category": "Workarounds",
80            "description": [
81                "HLSL's function texture.Load returns 0 when the parameter Location is negative, even if ",
82                "the sum of Offset and Location is in range"
83            ]
84        },
85        {
86            "name": "emulate_tiny_stencil_textures",
87            "category": "Workarounds",
88            "description": [
89                "1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly"
90            ]
91        },
92        {
93            "name": "disable_B5G6R5_support",
94            "category": "Workarounds",
95            "description": [
96                "Textures with the format ",
97                "DXGI_FORMAT_B5G6R5_UNORM have incorrect data"
98            ]
99        },
100        {
101            "name": "rewrite_unary_minus_operator",
102            "category": "Workarounds",
103            "description": [
104                "Evaluating unary minus operator on integer may get wrong answer in vertex shaders"
105            ]
106        },
107        {
108            "name": "emulate_isnan_float",
109            "category": "Workarounds",
110            "description": [
111                "Using isnan() on highp float will get wrong answer"
112            ],
113            "issue": "https://crbug.com/650547"
114        },
115        {
116            "name": "call_clear_twice",
117            "category": "Workarounds",
118            "description": [
119                "Using clear() may not take effect"
120            ],
121            "issue": "https://crbug.com/655534"
122        },
123        {
124            "name": "use_system_memory_for_constant_buffers",
125            "category": "Workarounds",
126            "description": [
127                "Copying from staging storage to constant buffer ",
128                "storage does not work"
129            ],
130            "issue": "https://crbug.com/593024"
131        },
132        {
133            "name": "select_view_in_geometry_shader",
134            "category": "Workarounds",
135            "description": [
136                "The viewport or render target slice will be selected in the geometry shader stage for ",
137                "the ANGLE_multiview extension"
138            ]
139        },
140        {
141            "name": "add_mock_texture_no_render_target",
142            "category": "Workarounds",
143            "description": [
144                "On some drivers when rendering with no render target, two bugs lead to incorrect behavior"
145            ],
146            "issue": "http://anglebug.com/2152"
147        },
148        {
149            "name": "skip_VS_constant_register_zero",
150            "category": "Workarounds",
151            "description": [
152                "In specific cases the driver doesn't handle constant register zero correctly"
153            ]
154        },
155        {
156            "name": "force_atomic_value_resolution",
157            "category": "Workarounds",
158            "description": [
159                "On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve ",
160                "when used in the .yzw components of a RWByteAddressBuffer.Store operation"
161            ],
162            "issue": "http://anglebug.com/3246"
163        },
164        {
165            "name": "allow_clear_for_robust_resource_init",
166            "category": "Workarounds",
167            "description": [
168                "Some drivers corrupt texture data when clearing for robust resource initialization."
169            ],
170            "issue": "http://crbug.com/941620"
171        },
172        {
173            "name": "allow_translate_uniform_block_to_structured_buffer",
174            "category": "Workarounds",
175            "description": [
176                "There is a slow fxc compile performance issue with dynamic uniform indexing if ",
177                "translating a uniform block with a large array member to cbuffer."
178            ],
179            "issue": "http://anglebug.com/3682"
180        },
181        {
182            "name": "allow_ES3_on_FL10_0",
183            "category": "Workarounds",
184            "description": [
185                "Allow ES3 on 10.0 devices"
186            ]
187        },
188        {
189            "name": "disable_rasterizer_order_views",
190            "category": "Workarounds",
191            "description": [
192                "Disable ROVs for testing"
193            ],
194            "issue": "http://anglebug.com/7279"
195        },
196        {
197            "name": "enable_timestamp_queries",
198            "category": "Workarounds",
199            "description": [
200                "Enable timestamp on GL_EXT_disjoint_timer_query extension"
201            ]
202        },
203        {
204            "name": "supports_non_constant_loop_indexing",
205            "category": "Workarounds",
206            "description": [
207                "Whether the API supports non-constant loop indexing"
208            ]
209        }
210    ]
211}
212