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