dxgi_support_table_autogen.cpp (112144B)
1 // GENERATED FILE - DO NOT EDIT. See dxgi_support_data.json. 2 // 3 // Copyright 2015 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 // dxgi_support_table: 8 // Queries for DXGI support of various texture formats. Depends on DXGI 9 // version, D3D feature level, and is sometimes guaranteed or optional. 10 // 11 12 #include "libANGLE/renderer/dxgi_support_table.h" 13 14 #include "common/debug.h" 15 16 namespace rx 17 { 18 19 namespace d3d11 20 { 21 22 #define F_2D D3D11_FORMAT_SUPPORT_TEXTURE2D 23 #define F_3D D3D11_FORMAT_SUPPORT_TEXTURE3D 24 #define F_CUBE D3D11_FORMAT_SUPPORT_TEXTURECUBE 25 #define F_SAMPLE D3D11_FORMAT_SUPPORT_SHADER_SAMPLE 26 #define F_RT D3D11_FORMAT_SUPPORT_RENDER_TARGET 27 #define F_MS D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET 28 #define F_DS D3D11_FORMAT_SUPPORT_DEPTH_STENCIL 29 #define F_MIPGEN D3D11_FORMAT_SUPPORT_MIP_AUTOGEN 30 31 namespace 32 { 33 34 const DXGISupport &GetDefaultSupport() 35 { 36 static UINT AllSupportFlags = 37 D3D11_FORMAT_SUPPORT_TEXTURE2D | D3D11_FORMAT_SUPPORT_TEXTURE3D | 38 D3D11_FORMAT_SUPPORT_TEXTURECUBE | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE | 39 D3D11_FORMAT_SUPPORT_RENDER_TARGET | D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET | 40 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL | D3D11_FORMAT_SUPPORT_MIP_AUTOGEN; 41 static const DXGISupport defaultSupport(0, 0, AllSupportFlags); 42 return defaultSupport; 43 } 44 45 const DXGISupport &GetDXGISupport_9_3(DXGI_FORMAT dxgiFormat) 46 { 47 // clang-format off 48 switch (dxgiFormat) 49 { 50 case DXGI_FORMAT_420_OPAQUE: 51 { 52 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 53 return info; 54 } 55 case DXGI_FORMAT_A8P8: 56 { 57 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 58 return info; 59 } 60 case DXGI_FORMAT_A8_UNORM: 61 { 62 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS, F_MS); 63 return info; 64 } 65 case DXGI_FORMAT_AI44: 66 { 67 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 68 return info; 69 } 70 case DXGI_FORMAT_AYUV: 71 { 72 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 73 return info; 74 } 75 case DXGI_FORMAT_B4G4R4A4_UNORM: 76 { 77 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 78 return info; 79 } 80 case DXGI_FORMAT_B5G5R5A1_UNORM: 81 { 82 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 83 return info; 84 } 85 case DXGI_FORMAT_B5G6R5_UNORM: 86 { 87 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 88 return info; 89 } 90 case DXGI_FORMAT_B8G8R8A8_TYPELESS: 91 { 92 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 93 return info; 94 } 95 case DXGI_FORMAT_B8G8R8A8_UNORM: 96 { 97 static const DXGISupport info(F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_2D | F_3D | F_CUBE | F_MS); 98 return info; 99 } 100 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 101 { 102 static const DXGISupport info(F_MIPGEN | F_RT, F_DS, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 103 return info; 104 } 105 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 106 { 107 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 108 return info; 109 } 110 case DXGI_FORMAT_B8G8R8X8_UNORM: 111 { 112 static const DXGISupport info(0, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS); 113 return info; 114 } 115 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 116 { 117 static const DXGISupport info(0, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS); 118 return info; 119 } 120 case DXGI_FORMAT_BC1_TYPELESS: 121 { 122 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 123 return info; 124 } 125 case DXGI_FORMAT_BC1_UNORM: 126 { 127 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 128 return info; 129 } 130 case DXGI_FORMAT_BC1_UNORM_SRGB: 131 { 132 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 133 return info; 134 } 135 case DXGI_FORMAT_BC2_TYPELESS: 136 { 137 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 138 return info; 139 } 140 case DXGI_FORMAT_BC2_UNORM: 141 { 142 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 143 return info; 144 } 145 case DXGI_FORMAT_BC2_UNORM_SRGB: 146 { 147 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 148 return info; 149 } 150 case DXGI_FORMAT_BC3_TYPELESS: 151 { 152 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 153 return info; 154 } 155 case DXGI_FORMAT_BC3_UNORM: 156 { 157 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 158 return info; 159 } 160 case DXGI_FORMAT_BC3_UNORM_SRGB: 161 { 162 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 163 return info; 164 } 165 case DXGI_FORMAT_BC4_SNORM: 166 { 167 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 168 return info; 169 } 170 case DXGI_FORMAT_BC4_TYPELESS: 171 { 172 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 173 return info; 174 } 175 case DXGI_FORMAT_BC4_UNORM: 176 { 177 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 178 return info; 179 } 180 case DXGI_FORMAT_BC5_SNORM: 181 { 182 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 183 return info; 184 } 185 case DXGI_FORMAT_BC5_TYPELESS: 186 { 187 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 188 return info; 189 } 190 case DXGI_FORMAT_BC5_UNORM: 191 { 192 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 193 return info; 194 } 195 case DXGI_FORMAT_BC6H_SF16: 196 { 197 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 198 return info; 199 } 200 case DXGI_FORMAT_BC6H_TYPELESS: 201 { 202 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 203 return info; 204 } 205 case DXGI_FORMAT_BC6H_UF16: 206 { 207 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 208 return info; 209 } 210 case DXGI_FORMAT_BC7_TYPELESS: 211 { 212 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 213 return info; 214 } 215 case DXGI_FORMAT_BC7_UNORM: 216 { 217 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 218 return info; 219 } 220 case DXGI_FORMAT_BC7_UNORM_SRGB: 221 { 222 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 223 return info; 224 } 225 case DXGI_FORMAT_D16_UNORM: 226 { 227 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 228 return info; 229 } 230 case DXGI_FORMAT_D24_UNORM_S8_UINT: 231 { 232 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_RT | F_SAMPLE, F_MS); 233 return info; 234 } 235 case DXGI_FORMAT_D32_FLOAT: 236 { 237 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 238 return info; 239 } 240 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 241 { 242 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 243 return info; 244 } 245 case DXGI_FORMAT_G8R8_G8B8_UNORM: 246 { 247 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 248 return info; 249 } 250 case DXGI_FORMAT_IA44: 251 { 252 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 253 return info; 254 } 255 case DXGI_FORMAT_NV11: 256 { 257 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 258 return info; 259 } 260 case DXGI_FORMAT_NV12: 261 { 262 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 263 return info; 264 } 265 case DXGI_FORMAT_P010: 266 { 267 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 268 return info; 269 } 270 case DXGI_FORMAT_P016: 271 { 272 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 273 return info; 274 } 275 case DXGI_FORMAT_P8: 276 { 277 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 278 return info; 279 } 280 case DXGI_FORMAT_R10G10B10A2_TYPELESS: 281 { 282 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 283 return info; 284 } 285 case DXGI_FORMAT_R10G10B10A2_UINT: 286 { 287 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 288 return info; 289 } 290 case DXGI_FORMAT_R10G10B10A2_UNORM: 291 { 292 static const DXGISupport info(0, F_DS, F_MS); 293 return info; 294 } 295 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 296 { 297 static const DXGISupport info(0, F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D); 298 return info; 299 } 300 case DXGI_FORMAT_R11G11B10_FLOAT: 301 { 302 static const DXGISupport info(0, F_DS, F_MS); 303 return info; 304 } 305 case DXGI_FORMAT_R16G16B16A16_FLOAT: 306 { 307 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS | F_SAMPLE); 308 return info; 309 } 310 case DXGI_FORMAT_R16G16B16A16_SINT: 311 { 312 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 313 return info; 314 } 315 case DXGI_FORMAT_R16G16B16A16_SNORM: 316 { 317 static const DXGISupport info(0, F_DS, F_MS); 318 return info; 319 } 320 case DXGI_FORMAT_R16G16B16A16_TYPELESS: 321 { 322 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 323 return info; 324 } 325 case DXGI_FORMAT_R16G16B16A16_UINT: 326 { 327 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 328 return info; 329 } 330 case DXGI_FORMAT_R16G16B16A16_UNORM: 331 { 332 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 333 return info; 334 } 335 case DXGI_FORMAT_R16G16_FLOAT: 336 { 337 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS); 338 return info; 339 } 340 case DXGI_FORMAT_R16G16_SINT: 341 { 342 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 343 return info; 344 } 345 case DXGI_FORMAT_R16G16_SNORM: 346 { 347 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT | F_SAMPLE, F_DS, F_MS); 348 return info; 349 } 350 case DXGI_FORMAT_R16G16_TYPELESS: 351 { 352 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 353 return info; 354 } 355 case DXGI_FORMAT_R16G16_UINT: 356 { 357 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 358 return info; 359 } 360 case DXGI_FORMAT_R16G16_UNORM: 361 { 362 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 363 return info; 364 } 365 case DXGI_FORMAT_R16_FLOAT: 366 { 367 static const DXGISupport info(0, F_DS, F_MS); 368 return info; 369 } 370 case DXGI_FORMAT_R16_SINT: 371 { 372 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 373 return info; 374 } 375 case DXGI_FORMAT_R16_SNORM: 376 { 377 static const DXGISupport info(0, F_DS, F_MS); 378 return info; 379 } 380 case DXGI_FORMAT_R16_TYPELESS: 381 { 382 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 383 return info; 384 } 385 case DXGI_FORMAT_R16_UINT: 386 { 387 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 388 return info; 389 } 390 case DXGI_FORMAT_R16_UNORM: 391 { 392 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS, F_MS); 393 return info; 394 } 395 case DXGI_FORMAT_R1_UNORM: 396 { 397 static const DXGISupport info(F_2D, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 398 return info; 399 } 400 case DXGI_FORMAT_R24G8_TYPELESS: 401 { 402 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 403 return info; 404 } 405 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: 406 { 407 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 408 return info; 409 } 410 case DXGI_FORMAT_R32G32B32A32_FLOAT: 411 { 412 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS); 413 return info; 414 } 415 case DXGI_FORMAT_R32G32B32A32_SINT: 416 { 417 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 418 return info; 419 } 420 case DXGI_FORMAT_R32G32B32A32_TYPELESS: 421 { 422 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 423 return info; 424 } 425 case DXGI_FORMAT_R32G32B32A32_UINT: 426 { 427 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 428 return info; 429 } 430 case DXGI_FORMAT_R32G32B32_FLOAT: 431 { 432 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN, F_MS | F_RT); 433 return info; 434 } 435 case DXGI_FORMAT_R32G32B32_SINT: 436 { 437 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 438 return info; 439 } 440 case DXGI_FORMAT_R32G32B32_TYPELESS: 441 { 442 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 443 return info; 444 } 445 case DXGI_FORMAT_R32G32B32_UINT: 446 { 447 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 448 return info; 449 } 450 case DXGI_FORMAT_R32G32_FLOAT: 451 { 452 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS, F_MS); 453 return info; 454 } 455 case DXGI_FORMAT_R32G32_SINT: 456 { 457 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 458 return info; 459 } 460 case DXGI_FORMAT_R32G32_TYPELESS: 461 { 462 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 463 return info; 464 } 465 case DXGI_FORMAT_R32G32_UINT: 466 { 467 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 468 return info; 469 } 470 case DXGI_FORMAT_R32G8X24_TYPELESS: 471 { 472 static const DXGISupport info(0, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 473 return info; 474 } 475 case DXGI_FORMAT_R32_FLOAT: 476 { 477 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS); 478 return info; 479 } 480 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 481 { 482 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 483 return info; 484 } 485 case DXGI_FORMAT_R32_SINT: 486 { 487 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 488 return info; 489 } 490 case DXGI_FORMAT_R32_TYPELESS: 491 { 492 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 493 return info; 494 } 495 case DXGI_FORMAT_R32_UINT: 496 { 497 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 498 return info; 499 } 500 case DXGI_FORMAT_R8G8B8A8_SINT: 501 { 502 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 503 return info; 504 } 505 case DXGI_FORMAT_R8G8B8A8_SNORM: 506 { 507 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT | F_SAMPLE, F_DS, F_MS); 508 return info; 509 } 510 case DXGI_FORMAT_R8G8B8A8_TYPELESS: 511 { 512 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 513 return info; 514 } 515 case DXGI_FORMAT_R8G8B8A8_UINT: 516 { 517 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 518 return info; 519 } 520 case DXGI_FORMAT_R8G8B8A8_UNORM: 521 { 522 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 523 return info; 524 } 525 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 526 { 527 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 528 return info; 529 } 530 case DXGI_FORMAT_R8G8_B8G8_UNORM: 531 { 532 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 533 return info; 534 } 535 case DXGI_FORMAT_R8G8_SINT: 536 { 537 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 538 return info; 539 } 540 case DXGI_FORMAT_R8G8_SNORM: 541 { 542 static const DXGISupport info(F_2D | F_SAMPLE, F_DS, F_MS); 543 return info; 544 } 545 case DXGI_FORMAT_R8G8_TYPELESS: 546 { 547 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 548 return info; 549 } 550 case DXGI_FORMAT_R8G8_UINT: 551 { 552 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 553 return info; 554 } 555 case DXGI_FORMAT_R8G8_UNORM: 556 { 557 static const DXGISupport info(0, F_DS, F_MS | F_RT | F_SAMPLE); 558 return info; 559 } 560 case DXGI_FORMAT_R8_SINT: 561 { 562 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 563 return info; 564 } 565 case DXGI_FORMAT_R8_SNORM: 566 { 567 static const DXGISupport info(0, F_DS, F_MS); 568 return info; 569 } 570 case DXGI_FORMAT_R8_TYPELESS: 571 { 572 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 573 return info; 574 } 575 case DXGI_FORMAT_R8_UINT: 576 { 577 static const DXGISupport info(0, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 578 return info; 579 } 580 case DXGI_FORMAT_R8_UNORM: 581 { 582 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS, F_MS | F_RT); 583 return info; 584 } 585 case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: 586 { 587 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 588 return info; 589 } 590 case DXGI_FORMAT_UNKNOWN: 591 { 592 static const DXGISupport info(0, F_2D | F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 593 return info; 594 } 595 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 596 { 597 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 598 return info; 599 } 600 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 601 { 602 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 603 return info; 604 } 605 case DXGI_FORMAT_Y210: 606 { 607 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 608 return info; 609 } 610 case DXGI_FORMAT_Y216: 611 { 612 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 613 return info; 614 } 615 case DXGI_FORMAT_Y410: 616 { 617 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 618 return info; 619 } 620 case DXGI_FORMAT_Y416: 621 { 622 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 623 return info; 624 } 625 case DXGI_FORMAT_YUY2: 626 { 627 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 628 return info; 629 } 630 631 default: 632 UNREACHABLE(); 633 return GetDefaultSupport(); 634 } 635 // clang-format on 636 } 637 638 const DXGISupport &GetDXGISupport_10_0(DXGI_FORMAT dxgiFormat) 639 { 640 // clang-format off 641 switch (dxgiFormat) 642 { 643 case DXGI_FORMAT_420_OPAQUE: 644 { 645 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 646 return info; 647 } 648 case DXGI_FORMAT_A8P8: 649 { 650 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 651 return info; 652 } 653 case DXGI_FORMAT_A8_UNORM: 654 { 655 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 656 return info; 657 } 658 case DXGI_FORMAT_AI44: 659 { 660 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 661 return info; 662 } 663 case DXGI_FORMAT_AYUV: 664 { 665 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 666 return info; 667 } 668 case DXGI_FORMAT_B4G4R4A4_UNORM: 669 { 670 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 671 return info; 672 } 673 case DXGI_FORMAT_B5G5R5A1_UNORM: 674 { 675 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 676 return info; 677 } 678 case DXGI_FORMAT_B5G6R5_UNORM: 679 { 680 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 681 return info; 682 } 683 case DXGI_FORMAT_B8G8R8A8_TYPELESS: 684 { 685 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 686 return info; 687 } 688 case DXGI_FORMAT_B8G8R8A8_UNORM: 689 { 690 static const DXGISupport info(F_MIPGEN, F_DS, F_2D | F_3D | F_CUBE | F_MS | F_RT | F_SAMPLE); 691 return info; 692 } 693 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 694 { 695 static const DXGISupport info(F_MIPGEN | F_RT, F_DS, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 696 return info; 697 } 698 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 699 { 700 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 701 return info; 702 } 703 case DXGI_FORMAT_B8G8R8X8_UNORM: 704 { 705 static const DXGISupport info(0, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 706 return info; 707 } 708 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 709 { 710 static const DXGISupport info(0, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 711 return info; 712 } 713 case DXGI_FORMAT_BC1_TYPELESS: 714 { 715 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 716 return info; 717 } 718 case DXGI_FORMAT_BC1_UNORM: 719 { 720 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 721 return info; 722 } 723 case DXGI_FORMAT_BC1_UNORM_SRGB: 724 { 725 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 726 return info; 727 } 728 case DXGI_FORMAT_BC2_TYPELESS: 729 { 730 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 731 return info; 732 } 733 case DXGI_FORMAT_BC2_UNORM: 734 { 735 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 736 return info; 737 } 738 case DXGI_FORMAT_BC2_UNORM_SRGB: 739 { 740 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 741 return info; 742 } 743 case DXGI_FORMAT_BC3_TYPELESS: 744 { 745 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 746 return info; 747 } 748 case DXGI_FORMAT_BC3_UNORM: 749 { 750 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 751 return info; 752 } 753 case DXGI_FORMAT_BC3_UNORM_SRGB: 754 { 755 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 756 return info; 757 } 758 case DXGI_FORMAT_BC4_SNORM: 759 { 760 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 761 return info; 762 } 763 case DXGI_FORMAT_BC4_TYPELESS: 764 { 765 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 766 return info; 767 } 768 case DXGI_FORMAT_BC4_UNORM: 769 { 770 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 771 return info; 772 } 773 case DXGI_FORMAT_BC5_SNORM: 774 { 775 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 776 return info; 777 } 778 case DXGI_FORMAT_BC5_TYPELESS: 779 { 780 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 781 return info; 782 } 783 case DXGI_FORMAT_BC5_UNORM: 784 { 785 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 786 return info; 787 } 788 case DXGI_FORMAT_BC6H_SF16: 789 { 790 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 791 return info; 792 } 793 case DXGI_FORMAT_BC6H_TYPELESS: 794 { 795 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 796 return info; 797 } 798 case DXGI_FORMAT_BC6H_UF16: 799 { 800 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 801 return info; 802 } 803 case DXGI_FORMAT_BC7_TYPELESS: 804 { 805 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 806 return info; 807 } 808 case DXGI_FORMAT_BC7_UNORM: 809 { 810 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 811 return info; 812 } 813 case DXGI_FORMAT_BC7_UNORM_SRGB: 814 { 815 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 816 return info; 817 } 818 case DXGI_FORMAT_D16_UNORM: 819 { 820 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 821 return info; 822 } 823 case DXGI_FORMAT_D24_UNORM_S8_UINT: 824 { 825 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_RT | F_SAMPLE, F_MS); 826 return info; 827 } 828 case DXGI_FORMAT_D32_FLOAT: 829 { 830 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 831 return info; 832 } 833 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 834 { 835 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 836 return info; 837 } 838 case DXGI_FORMAT_G8R8_G8B8_UNORM: 839 { 840 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 841 return info; 842 } 843 case DXGI_FORMAT_IA44: 844 { 845 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 846 return info; 847 } 848 case DXGI_FORMAT_NV11: 849 { 850 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 851 return info; 852 } 853 case DXGI_FORMAT_NV12: 854 { 855 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 856 return info; 857 } 858 case DXGI_FORMAT_P010: 859 { 860 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 861 return info; 862 } 863 case DXGI_FORMAT_P016: 864 { 865 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 866 return info; 867 } 868 case DXGI_FORMAT_P8: 869 { 870 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 871 return info; 872 } 873 case DXGI_FORMAT_R10G10B10A2_TYPELESS: 874 { 875 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 876 return info; 877 } 878 case DXGI_FORMAT_R10G10B10A2_UINT: 879 { 880 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 881 return info; 882 } 883 case DXGI_FORMAT_R10G10B10A2_UNORM: 884 { 885 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 886 return info; 887 } 888 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 889 { 890 static const DXGISupport info(0, F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D); 891 return info; 892 } 893 case DXGI_FORMAT_R11G11B10_FLOAT: 894 { 895 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 896 return info; 897 } 898 case DXGI_FORMAT_R16G16B16A16_FLOAT: 899 { 900 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 901 return info; 902 } 903 case DXGI_FORMAT_R16G16B16A16_SINT: 904 { 905 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 906 return info; 907 } 908 case DXGI_FORMAT_R16G16B16A16_SNORM: 909 { 910 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 911 return info; 912 } 913 case DXGI_FORMAT_R16G16B16A16_TYPELESS: 914 { 915 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 916 return info; 917 } 918 case DXGI_FORMAT_R16G16B16A16_UINT: 919 { 920 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 921 return info; 922 } 923 case DXGI_FORMAT_R16G16B16A16_UNORM: 924 { 925 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 926 return info; 927 } 928 case DXGI_FORMAT_R16G16_FLOAT: 929 { 930 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 931 return info; 932 } 933 case DXGI_FORMAT_R16G16_SINT: 934 { 935 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 936 return info; 937 } 938 case DXGI_FORMAT_R16G16_SNORM: 939 { 940 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 941 return info; 942 } 943 case DXGI_FORMAT_R16G16_TYPELESS: 944 { 945 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 946 return info; 947 } 948 case DXGI_FORMAT_R16G16_UINT: 949 { 950 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 951 return info; 952 } 953 case DXGI_FORMAT_R16G16_UNORM: 954 { 955 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 956 return info; 957 } 958 case DXGI_FORMAT_R16_FLOAT: 959 { 960 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 961 return info; 962 } 963 case DXGI_FORMAT_R16_SINT: 964 { 965 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 966 return info; 967 } 968 case DXGI_FORMAT_R16_SNORM: 969 { 970 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 971 return info; 972 } 973 case DXGI_FORMAT_R16_TYPELESS: 974 { 975 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 976 return info; 977 } 978 case DXGI_FORMAT_R16_UINT: 979 { 980 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 981 return info; 982 } 983 case DXGI_FORMAT_R16_UNORM: 984 { 985 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 986 return info; 987 } 988 case DXGI_FORMAT_R1_UNORM: 989 { 990 static const DXGISupport info(F_2D, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 991 return info; 992 } 993 case DXGI_FORMAT_R24G8_TYPELESS: 994 { 995 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 996 return info; 997 } 998 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: 999 { 1000 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, F_SAMPLE); 1001 return info; 1002 } 1003 case DXGI_FORMAT_R32G32B32A32_FLOAT: 1004 { 1005 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS | F_SAMPLE); 1006 return info; 1007 } 1008 case DXGI_FORMAT_R32G32B32A32_SINT: 1009 { 1010 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1011 return info; 1012 } 1013 case DXGI_FORMAT_R32G32B32A32_TYPELESS: 1014 { 1015 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1016 return info; 1017 } 1018 case DXGI_FORMAT_R32G32B32A32_UINT: 1019 { 1020 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1021 return info; 1022 } 1023 case DXGI_FORMAT_R32G32B32_FLOAT: 1024 { 1025 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN, F_MS | F_RT); 1026 return info; 1027 } 1028 case DXGI_FORMAT_R32G32B32_SINT: 1029 { 1030 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 1031 return info; 1032 } 1033 case DXGI_FORMAT_R32G32B32_TYPELESS: 1034 { 1035 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1036 return info; 1037 } 1038 case DXGI_FORMAT_R32G32B32_UINT: 1039 { 1040 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 1041 return info; 1042 } 1043 case DXGI_FORMAT_R32G32_FLOAT: 1044 { 1045 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS | F_SAMPLE); 1046 return info; 1047 } 1048 case DXGI_FORMAT_R32G32_SINT: 1049 { 1050 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1051 return info; 1052 } 1053 case DXGI_FORMAT_R32G32_TYPELESS: 1054 { 1055 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1056 return info; 1057 } 1058 case DXGI_FORMAT_R32G32_UINT: 1059 { 1060 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1061 return info; 1062 } 1063 case DXGI_FORMAT_R32G8X24_TYPELESS: 1064 { 1065 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1066 return info; 1067 } 1068 case DXGI_FORMAT_R32_FLOAT: 1069 { 1070 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT, F_DS, F_MS | F_SAMPLE); 1071 return info; 1072 } 1073 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 1074 { 1075 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, F_SAMPLE); 1076 return info; 1077 } 1078 case DXGI_FORMAT_R32_SINT: 1079 { 1080 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1081 return info; 1082 } 1083 case DXGI_FORMAT_R32_TYPELESS: 1084 { 1085 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1086 return info; 1087 } 1088 case DXGI_FORMAT_R32_UINT: 1089 { 1090 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1091 return info; 1092 } 1093 case DXGI_FORMAT_R8G8B8A8_SINT: 1094 { 1095 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1096 return info; 1097 } 1098 case DXGI_FORMAT_R8G8B8A8_SNORM: 1099 { 1100 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1101 return info; 1102 } 1103 case DXGI_FORMAT_R8G8B8A8_TYPELESS: 1104 { 1105 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1106 return info; 1107 } 1108 case DXGI_FORMAT_R8G8B8A8_UINT: 1109 { 1110 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1111 return info; 1112 } 1113 case DXGI_FORMAT_R8G8B8A8_UNORM: 1114 { 1115 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1116 return info; 1117 } 1118 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 1119 { 1120 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1121 return info; 1122 } 1123 case DXGI_FORMAT_R8G8_B8G8_UNORM: 1124 { 1125 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1126 return info; 1127 } 1128 case DXGI_FORMAT_R8G8_SINT: 1129 { 1130 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1131 return info; 1132 } 1133 case DXGI_FORMAT_R8G8_SNORM: 1134 { 1135 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1136 return info; 1137 } 1138 case DXGI_FORMAT_R8G8_TYPELESS: 1139 { 1140 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1141 return info; 1142 } 1143 case DXGI_FORMAT_R8G8_UINT: 1144 { 1145 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1146 return info; 1147 } 1148 case DXGI_FORMAT_R8G8_UNORM: 1149 { 1150 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1151 return info; 1152 } 1153 case DXGI_FORMAT_R8_SINT: 1154 { 1155 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1156 return info; 1157 } 1158 case DXGI_FORMAT_R8_SNORM: 1159 { 1160 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1161 return info; 1162 } 1163 case DXGI_FORMAT_R8_TYPELESS: 1164 { 1165 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1166 return info; 1167 } 1168 case DXGI_FORMAT_R8_UINT: 1169 { 1170 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1171 return info; 1172 } 1173 case DXGI_FORMAT_R8_UNORM: 1174 { 1175 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1176 return info; 1177 } 1178 case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: 1179 { 1180 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1181 return info; 1182 } 1183 case DXGI_FORMAT_UNKNOWN: 1184 { 1185 static const DXGISupport info(0, F_2D | F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1186 return info; 1187 } 1188 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 1189 { 1190 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1191 return info; 1192 } 1193 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 1194 { 1195 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1196 return info; 1197 } 1198 case DXGI_FORMAT_Y210: 1199 { 1200 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1201 return info; 1202 } 1203 case DXGI_FORMAT_Y216: 1204 { 1205 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1206 return info; 1207 } 1208 case DXGI_FORMAT_Y410: 1209 { 1210 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1211 return info; 1212 } 1213 case DXGI_FORMAT_Y416: 1214 { 1215 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1216 return info; 1217 } 1218 case DXGI_FORMAT_YUY2: 1219 { 1220 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1221 return info; 1222 } 1223 1224 default: 1225 UNREACHABLE(); 1226 return GetDefaultSupport(); 1227 } 1228 // clang-format on 1229 } 1230 1231 const DXGISupport &GetDXGISupport_10_1(DXGI_FORMAT dxgiFormat) 1232 { 1233 // clang-format off 1234 switch (dxgiFormat) 1235 { 1236 case DXGI_FORMAT_420_OPAQUE: 1237 { 1238 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1239 return info; 1240 } 1241 case DXGI_FORMAT_A8P8: 1242 { 1243 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1244 return info; 1245 } 1246 case DXGI_FORMAT_A8_UNORM: 1247 { 1248 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1249 return info; 1250 } 1251 case DXGI_FORMAT_AI44: 1252 { 1253 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1254 return info; 1255 } 1256 case DXGI_FORMAT_AYUV: 1257 { 1258 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 1259 return info; 1260 } 1261 case DXGI_FORMAT_B4G4R4A4_UNORM: 1262 { 1263 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 1264 return info; 1265 } 1266 case DXGI_FORMAT_B5G5R5A1_UNORM: 1267 { 1268 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 1269 return info; 1270 } 1271 case DXGI_FORMAT_B5G6R5_UNORM: 1272 { 1273 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1274 return info; 1275 } 1276 case DXGI_FORMAT_B8G8R8A8_TYPELESS: 1277 { 1278 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 1279 return info; 1280 } 1281 case DXGI_FORMAT_B8G8R8A8_UNORM: 1282 { 1283 static const DXGISupport info(F_MIPGEN, F_DS, F_2D | F_3D | F_CUBE | F_MS | F_RT | F_SAMPLE); 1284 return info; 1285 } 1286 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 1287 { 1288 static const DXGISupport info(F_MIPGEN | F_RT, F_DS, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 1289 return info; 1290 } 1291 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 1292 { 1293 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 1294 return info; 1295 } 1296 case DXGI_FORMAT_B8G8R8X8_UNORM: 1297 { 1298 static const DXGISupport info(0, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 1299 return info; 1300 } 1301 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 1302 { 1303 static const DXGISupport info(0, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS | F_SAMPLE); 1304 return info; 1305 } 1306 case DXGI_FORMAT_BC1_TYPELESS: 1307 { 1308 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1309 return info; 1310 } 1311 case DXGI_FORMAT_BC1_UNORM: 1312 { 1313 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1314 return info; 1315 } 1316 case DXGI_FORMAT_BC1_UNORM_SRGB: 1317 { 1318 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1319 return info; 1320 } 1321 case DXGI_FORMAT_BC2_TYPELESS: 1322 { 1323 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1324 return info; 1325 } 1326 case DXGI_FORMAT_BC2_UNORM: 1327 { 1328 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1329 return info; 1330 } 1331 case DXGI_FORMAT_BC2_UNORM_SRGB: 1332 { 1333 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1334 return info; 1335 } 1336 case DXGI_FORMAT_BC3_TYPELESS: 1337 { 1338 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1339 return info; 1340 } 1341 case DXGI_FORMAT_BC3_UNORM: 1342 { 1343 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1344 return info; 1345 } 1346 case DXGI_FORMAT_BC3_UNORM_SRGB: 1347 { 1348 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1349 return info; 1350 } 1351 case DXGI_FORMAT_BC4_SNORM: 1352 { 1353 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1354 return info; 1355 } 1356 case DXGI_FORMAT_BC4_TYPELESS: 1357 { 1358 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1359 return info; 1360 } 1361 case DXGI_FORMAT_BC4_UNORM: 1362 { 1363 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1364 return info; 1365 } 1366 case DXGI_FORMAT_BC5_SNORM: 1367 { 1368 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1369 return info; 1370 } 1371 case DXGI_FORMAT_BC5_TYPELESS: 1372 { 1373 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1374 return info; 1375 } 1376 case DXGI_FORMAT_BC5_UNORM: 1377 { 1378 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1379 return info; 1380 } 1381 case DXGI_FORMAT_BC6H_SF16: 1382 { 1383 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1384 return info; 1385 } 1386 case DXGI_FORMAT_BC6H_TYPELESS: 1387 { 1388 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1389 return info; 1390 } 1391 case DXGI_FORMAT_BC6H_UF16: 1392 { 1393 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1394 return info; 1395 } 1396 case DXGI_FORMAT_BC7_TYPELESS: 1397 { 1398 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1399 return info; 1400 } 1401 case DXGI_FORMAT_BC7_UNORM: 1402 { 1403 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1404 return info; 1405 } 1406 case DXGI_FORMAT_BC7_UNORM_SRGB: 1407 { 1408 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1409 return info; 1410 } 1411 case DXGI_FORMAT_D16_UNORM: 1412 { 1413 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 1414 return info; 1415 } 1416 case DXGI_FORMAT_D24_UNORM_S8_UINT: 1417 { 1418 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_RT | F_SAMPLE, F_MS); 1419 return info; 1420 } 1421 case DXGI_FORMAT_D32_FLOAT: 1422 { 1423 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 1424 return info; 1425 } 1426 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 1427 { 1428 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 1429 return info; 1430 } 1431 case DXGI_FORMAT_G8R8_G8B8_UNORM: 1432 { 1433 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1434 return info; 1435 } 1436 case DXGI_FORMAT_IA44: 1437 { 1438 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1439 return info; 1440 } 1441 case DXGI_FORMAT_NV11: 1442 { 1443 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 1444 return info; 1445 } 1446 case DXGI_FORMAT_NV12: 1447 { 1448 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 1449 return info; 1450 } 1451 case DXGI_FORMAT_P010: 1452 { 1453 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 1454 return info; 1455 } 1456 case DXGI_FORMAT_P016: 1457 { 1458 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 1459 return info; 1460 } 1461 case DXGI_FORMAT_P8: 1462 { 1463 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1464 return info; 1465 } 1466 case DXGI_FORMAT_R10G10B10A2_TYPELESS: 1467 { 1468 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1469 return info; 1470 } 1471 case DXGI_FORMAT_R10G10B10A2_UINT: 1472 { 1473 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1474 return info; 1475 } 1476 case DXGI_FORMAT_R10G10B10A2_UNORM: 1477 { 1478 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1479 return info; 1480 } 1481 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 1482 { 1483 static const DXGISupport info(0, F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D); 1484 return info; 1485 } 1486 case DXGI_FORMAT_R11G11B10_FLOAT: 1487 { 1488 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1489 return info; 1490 } 1491 case DXGI_FORMAT_R16G16B16A16_FLOAT: 1492 { 1493 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1494 return info; 1495 } 1496 case DXGI_FORMAT_R16G16B16A16_SINT: 1497 { 1498 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1499 return info; 1500 } 1501 case DXGI_FORMAT_R16G16B16A16_SNORM: 1502 { 1503 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1504 return info; 1505 } 1506 case DXGI_FORMAT_R16G16B16A16_TYPELESS: 1507 { 1508 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1509 return info; 1510 } 1511 case DXGI_FORMAT_R16G16B16A16_UINT: 1512 { 1513 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1514 return info; 1515 } 1516 case DXGI_FORMAT_R16G16B16A16_UNORM: 1517 { 1518 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1519 return info; 1520 } 1521 case DXGI_FORMAT_R16G16_FLOAT: 1522 { 1523 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1524 return info; 1525 } 1526 case DXGI_FORMAT_R16G16_SINT: 1527 { 1528 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1529 return info; 1530 } 1531 case DXGI_FORMAT_R16G16_SNORM: 1532 { 1533 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1534 return info; 1535 } 1536 case DXGI_FORMAT_R16G16_TYPELESS: 1537 { 1538 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1539 return info; 1540 } 1541 case DXGI_FORMAT_R16G16_UINT: 1542 { 1543 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1544 return info; 1545 } 1546 case DXGI_FORMAT_R16G16_UNORM: 1547 { 1548 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1549 return info; 1550 } 1551 case DXGI_FORMAT_R16_FLOAT: 1552 { 1553 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1554 return info; 1555 } 1556 case DXGI_FORMAT_R16_SINT: 1557 { 1558 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1559 return info; 1560 } 1561 case DXGI_FORMAT_R16_SNORM: 1562 { 1563 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1564 return info; 1565 } 1566 case DXGI_FORMAT_R16_TYPELESS: 1567 { 1568 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1569 return info; 1570 } 1571 case DXGI_FORMAT_R16_UINT: 1572 { 1573 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1574 return info; 1575 } 1576 case DXGI_FORMAT_R16_UNORM: 1577 { 1578 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1579 return info; 1580 } 1581 case DXGI_FORMAT_R1_UNORM: 1582 { 1583 static const DXGISupport info(F_2D, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1584 return info; 1585 } 1586 case DXGI_FORMAT_R24G8_TYPELESS: 1587 { 1588 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1589 return info; 1590 } 1591 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: 1592 { 1593 static const DXGISupport info(F_2D | F_CUBE | F_SAMPLE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1594 return info; 1595 } 1596 case DXGI_FORMAT_R32G32B32A32_FLOAT: 1597 { 1598 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1599 return info; 1600 } 1601 case DXGI_FORMAT_R32G32B32A32_SINT: 1602 { 1603 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1604 return info; 1605 } 1606 case DXGI_FORMAT_R32G32B32A32_TYPELESS: 1607 { 1608 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1609 return info; 1610 } 1611 case DXGI_FORMAT_R32G32B32A32_UINT: 1612 { 1613 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1614 return info; 1615 } 1616 case DXGI_FORMAT_R32G32B32_FLOAT: 1617 { 1618 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN, F_MS | F_RT); 1619 return info; 1620 } 1621 case DXGI_FORMAT_R32G32B32_SINT: 1622 { 1623 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 1624 return info; 1625 } 1626 case DXGI_FORMAT_R32G32B32_TYPELESS: 1627 { 1628 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1629 return info; 1630 } 1631 case DXGI_FORMAT_R32G32B32_UINT: 1632 { 1633 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 1634 return info; 1635 } 1636 case DXGI_FORMAT_R32G32_FLOAT: 1637 { 1638 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1639 return info; 1640 } 1641 case DXGI_FORMAT_R32G32_SINT: 1642 { 1643 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1644 return info; 1645 } 1646 case DXGI_FORMAT_R32G32_TYPELESS: 1647 { 1648 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1649 return info; 1650 } 1651 case DXGI_FORMAT_R32G32_UINT: 1652 { 1653 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1654 return info; 1655 } 1656 case DXGI_FORMAT_R32G8X24_TYPELESS: 1657 { 1658 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1659 return info; 1660 } 1661 case DXGI_FORMAT_R32_FLOAT: 1662 { 1663 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1664 return info; 1665 } 1666 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 1667 { 1668 static const DXGISupport info(F_2D | F_CUBE | F_SAMPLE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1669 return info; 1670 } 1671 case DXGI_FORMAT_R32_SINT: 1672 { 1673 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1674 return info; 1675 } 1676 case DXGI_FORMAT_R32_TYPELESS: 1677 { 1678 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1679 return info; 1680 } 1681 case DXGI_FORMAT_R32_UINT: 1682 { 1683 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1684 return info; 1685 } 1686 case DXGI_FORMAT_R8G8B8A8_SINT: 1687 { 1688 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1689 return info; 1690 } 1691 case DXGI_FORMAT_R8G8B8A8_SNORM: 1692 { 1693 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1694 return info; 1695 } 1696 case DXGI_FORMAT_R8G8B8A8_TYPELESS: 1697 { 1698 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1699 return info; 1700 } 1701 case DXGI_FORMAT_R8G8B8A8_UINT: 1702 { 1703 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1704 return info; 1705 } 1706 case DXGI_FORMAT_R8G8B8A8_UNORM: 1707 { 1708 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1709 return info; 1710 } 1711 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 1712 { 1713 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1714 return info; 1715 } 1716 case DXGI_FORMAT_R8G8_B8G8_UNORM: 1717 { 1718 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1719 return info; 1720 } 1721 case DXGI_FORMAT_R8G8_SINT: 1722 { 1723 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1724 return info; 1725 } 1726 case DXGI_FORMAT_R8G8_SNORM: 1727 { 1728 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1729 return info; 1730 } 1731 case DXGI_FORMAT_R8G8_TYPELESS: 1732 { 1733 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1734 return info; 1735 } 1736 case DXGI_FORMAT_R8G8_UINT: 1737 { 1738 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1739 return info; 1740 } 1741 case DXGI_FORMAT_R8G8_UNORM: 1742 { 1743 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1744 return info; 1745 } 1746 case DXGI_FORMAT_R8_SINT: 1747 { 1748 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1749 return info; 1750 } 1751 case DXGI_FORMAT_R8_SNORM: 1752 { 1753 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1754 return info; 1755 } 1756 case DXGI_FORMAT_R8_TYPELESS: 1757 { 1758 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1759 return info; 1760 } 1761 case DXGI_FORMAT_R8_UINT: 1762 { 1763 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 1764 return info; 1765 } 1766 case DXGI_FORMAT_R8_UNORM: 1767 { 1768 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1769 return info; 1770 } 1771 case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: 1772 { 1773 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1774 return info; 1775 } 1776 case DXGI_FORMAT_UNKNOWN: 1777 { 1778 static const DXGISupport info(0, F_2D | F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1779 return info; 1780 } 1781 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 1782 { 1783 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1784 return info; 1785 } 1786 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 1787 { 1788 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1789 return info; 1790 } 1791 case DXGI_FORMAT_Y210: 1792 { 1793 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1794 return info; 1795 } 1796 case DXGI_FORMAT_Y216: 1797 { 1798 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1799 return info; 1800 } 1801 case DXGI_FORMAT_Y410: 1802 { 1803 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1804 return info; 1805 } 1806 case DXGI_FORMAT_Y416: 1807 { 1808 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1809 return info; 1810 } 1811 case DXGI_FORMAT_YUY2: 1812 { 1813 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 1814 return info; 1815 } 1816 1817 default: 1818 UNREACHABLE(); 1819 return GetDefaultSupport(); 1820 } 1821 // clang-format on 1822 } 1823 1824 const DXGISupport &GetDXGISupport_11_0(DXGI_FORMAT dxgiFormat) 1825 { 1826 // clang-format off 1827 switch (dxgiFormat) 1828 { 1829 case DXGI_FORMAT_420_OPAQUE: 1830 { 1831 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1832 return info; 1833 } 1834 case DXGI_FORMAT_A8P8: 1835 { 1836 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1837 return info; 1838 } 1839 case DXGI_FORMAT_A8_UNORM: 1840 { 1841 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1842 return info; 1843 } 1844 case DXGI_FORMAT_AI44: 1845 { 1846 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1847 return info; 1848 } 1849 case DXGI_FORMAT_AYUV: 1850 { 1851 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 1852 return info; 1853 } 1854 case DXGI_FORMAT_B4G4R4A4_UNORM: 1855 { 1856 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 1857 return info; 1858 } 1859 case DXGI_FORMAT_B5G5R5A1_UNORM: 1860 { 1861 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 1862 return info; 1863 } 1864 case DXGI_FORMAT_B5G6R5_UNORM: 1865 { 1866 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 1867 return info; 1868 } 1869 case DXGI_FORMAT_B8G8R8A8_TYPELESS: 1870 { 1871 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 1872 return info; 1873 } 1874 case DXGI_FORMAT_B8G8R8A8_UNORM: 1875 { 1876 static const DXGISupport info(F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_2D | F_3D | F_CUBE | F_MS); 1877 return info; 1878 } 1879 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 1880 { 1881 static const DXGISupport info(F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_2D | F_3D | F_CUBE | F_MS); 1882 return info; 1883 } 1884 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 1885 { 1886 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 1887 return info; 1888 } 1889 case DXGI_FORMAT_B8G8R8X8_UNORM: 1890 { 1891 static const DXGISupport info(F_RT | F_SAMPLE, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS); 1892 return info; 1893 } 1894 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 1895 { 1896 static const DXGISupport info(F_RT | F_SAMPLE, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS); 1897 return info; 1898 } 1899 case DXGI_FORMAT_BC1_TYPELESS: 1900 { 1901 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1902 return info; 1903 } 1904 case DXGI_FORMAT_BC1_UNORM: 1905 { 1906 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1907 return info; 1908 } 1909 case DXGI_FORMAT_BC1_UNORM_SRGB: 1910 { 1911 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1912 return info; 1913 } 1914 case DXGI_FORMAT_BC2_TYPELESS: 1915 { 1916 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1917 return info; 1918 } 1919 case DXGI_FORMAT_BC2_UNORM: 1920 { 1921 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1922 return info; 1923 } 1924 case DXGI_FORMAT_BC2_UNORM_SRGB: 1925 { 1926 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1927 return info; 1928 } 1929 case DXGI_FORMAT_BC3_TYPELESS: 1930 { 1931 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1932 return info; 1933 } 1934 case DXGI_FORMAT_BC3_UNORM: 1935 { 1936 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1937 return info; 1938 } 1939 case DXGI_FORMAT_BC3_UNORM_SRGB: 1940 { 1941 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1942 return info; 1943 } 1944 case DXGI_FORMAT_BC4_SNORM: 1945 { 1946 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1947 return info; 1948 } 1949 case DXGI_FORMAT_BC4_TYPELESS: 1950 { 1951 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1952 return info; 1953 } 1954 case DXGI_FORMAT_BC4_UNORM: 1955 { 1956 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1957 return info; 1958 } 1959 case DXGI_FORMAT_BC5_SNORM: 1960 { 1961 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1962 return info; 1963 } 1964 case DXGI_FORMAT_BC5_TYPELESS: 1965 { 1966 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1967 return info; 1968 } 1969 case DXGI_FORMAT_BC5_UNORM: 1970 { 1971 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1972 return info; 1973 } 1974 case DXGI_FORMAT_BC6H_SF16: 1975 { 1976 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1977 return info; 1978 } 1979 case DXGI_FORMAT_BC6H_TYPELESS: 1980 { 1981 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1982 return info; 1983 } 1984 case DXGI_FORMAT_BC6H_UF16: 1985 { 1986 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1987 return info; 1988 } 1989 case DXGI_FORMAT_BC7_TYPELESS: 1990 { 1991 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 1992 return info; 1993 } 1994 case DXGI_FORMAT_BC7_UNORM: 1995 { 1996 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 1997 return info; 1998 } 1999 case DXGI_FORMAT_BC7_UNORM_SRGB: 2000 { 2001 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2002 return info; 2003 } 2004 case DXGI_FORMAT_D16_UNORM: 2005 { 2006 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 2007 return info; 2008 } 2009 case DXGI_FORMAT_D24_UNORM_S8_UINT: 2010 { 2011 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_RT | F_SAMPLE, F_MS); 2012 return info; 2013 } 2014 case DXGI_FORMAT_D32_FLOAT: 2015 { 2016 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 2017 return info; 2018 } 2019 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 2020 { 2021 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 2022 return info; 2023 } 2024 case DXGI_FORMAT_G8R8_G8B8_UNORM: 2025 { 2026 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2027 return info; 2028 } 2029 case DXGI_FORMAT_IA44: 2030 { 2031 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2032 return info; 2033 } 2034 case DXGI_FORMAT_NV11: 2035 { 2036 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2037 return info; 2038 } 2039 case DXGI_FORMAT_NV12: 2040 { 2041 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2042 return info; 2043 } 2044 case DXGI_FORMAT_P010: 2045 { 2046 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2047 return info; 2048 } 2049 case DXGI_FORMAT_P016: 2050 { 2051 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2052 return info; 2053 } 2054 case DXGI_FORMAT_P8: 2055 { 2056 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2057 return info; 2058 } 2059 case DXGI_FORMAT_R10G10B10A2_TYPELESS: 2060 { 2061 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2062 return info; 2063 } 2064 case DXGI_FORMAT_R10G10B10A2_UINT: 2065 { 2066 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2067 return info; 2068 } 2069 case DXGI_FORMAT_R10G10B10A2_UNORM: 2070 { 2071 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2072 return info; 2073 } 2074 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 2075 { 2076 static const DXGISupport info(0, F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D); 2077 return info; 2078 } 2079 case DXGI_FORMAT_R11G11B10_FLOAT: 2080 { 2081 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2082 return info; 2083 } 2084 case DXGI_FORMAT_R16G16B16A16_FLOAT: 2085 { 2086 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2087 return info; 2088 } 2089 case DXGI_FORMAT_R16G16B16A16_SINT: 2090 { 2091 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2092 return info; 2093 } 2094 case DXGI_FORMAT_R16G16B16A16_SNORM: 2095 { 2096 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2097 return info; 2098 } 2099 case DXGI_FORMAT_R16G16B16A16_TYPELESS: 2100 { 2101 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2102 return info; 2103 } 2104 case DXGI_FORMAT_R16G16B16A16_UINT: 2105 { 2106 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2107 return info; 2108 } 2109 case DXGI_FORMAT_R16G16B16A16_UNORM: 2110 { 2111 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2112 return info; 2113 } 2114 case DXGI_FORMAT_R16G16_FLOAT: 2115 { 2116 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2117 return info; 2118 } 2119 case DXGI_FORMAT_R16G16_SINT: 2120 { 2121 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2122 return info; 2123 } 2124 case DXGI_FORMAT_R16G16_SNORM: 2125 { 2126 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2127 return info; 2128 } 2129 case DXGI_FORMAT_R16G16_TYPELESS: 2130 { 2131 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2132 return info; 2133 } 2134 case DXGI_FORMAT_R16G16_UINT: 2135 { 2136 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2137 return info; 2138 } 2139 case DXGI_FORMAT_R16G16_UNORM: 2140 { 2141 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2142 return info; 2143 } 2144 case DXGI_FORMAT_R16_FLOAT: 2145 { 2146 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2147 return info; 2148 } 2149 case DXGI_FORMAT_R16_SINT: 2150 { 2151 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2152 return info; 2153 } 2154 case DXGI_FORMAT_R16_SNORM: 2155 { 2156 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2157 return info; 2158 } 2159 case DXGI_FORMAT_R16_TYPELESS: 2160 { 2161 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2162 return info; 2163 } 2164 case DXGI_FORMAT_R16_UINT: 2165 { 2166 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2167 return info; 2168 } 2169 case DXGI_FORMAT_R16_UNORM: 2170 { 2171 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2172 return info; 2173 } 2174 case DXGI_FORMAT_R1_UNORM: 2175 { 2176 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2177 return info; 2178 } 2179 case DXGI_FORMAT_R24G8_TYPELESS: 2180 { 2181 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2182 return info; 2183 } 2184 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: 2185 { 2186 static const DXGISupport info(F_2D | F_CUBE | F_SAMPLE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2187 return info; 2188 } 2189 case DXGI_FORMAT_R32G32B32A32_FLOAT: 2190 { 2191 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2192 return info; 2193 } 2194 case DXGI_FORMAT_R32G32B32A32_SINT: 2195 { 2196 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2197 return info; 2198 } 2199 case DXGI_FORMAT_R32G32B32A32_TYPELESS: 2200 { 2201 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2202 return info; 2203 } 2204 case DXGI_FORMAT_R32G32B32A32_UINT: 2205 { 2206 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2207 return info; 2208 } 2209 case DXGI_FORMAT_R32G32B32_FLOAT: 2210 { 2211 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN, F_MS | F_RT); 2212 return info; 2213 } 2214 case DXGI_FORMAT_R32G32B32_SINT: 2215 { 2216 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 2217 return info; 2218 } 2219 case DXGI_FORMAT_R32G32B32_TYPELESS: 2220 { 2221 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2222 return info; 2223 } 2224 case DXGI_FORMAT_R32G32B32_UINT: 2225 { 2226 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 2227 return info; 2228 } 2229 case DXGI_FORMAT_R32G32_FLOAT: 2230 { 2231 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2232 return info; 2233 } 2234 case DXGI_FORMAT_R32G32_SINT: 2235 { 2236 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2237 return info; 2238 } 2239 case DXGI_FORMAT_R32G32_TYPELESS: 2240 { 2241 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2242 return info; 2243 } 2244 case DXGI_FORMAT_R32G32_UINT: 2245 { 2246 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2247 return info; 2248 } 2249 case DXGI_FORMAT_R32G8X24_TYPELESS: 2250 { 2251 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2252 return info; 2253 } 2254 case DXGI_FORMAT_R32_FLOAT: 2255 { 2256 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2257 return info; 2258 } 2259 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 2260 { 2261 static const DXGISupport info(F_2D | F_CUBE | F_SAMPLE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2262 return info; 2263 } 2264 case DXGI_FORMAT_R32_SINT: 2265 { 2266 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2267 return info; 2268 } 2269 case DXGI_FORMAT_R32_TYPELESS: 2270 { 2271 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2272 return info; 2273 } 2274 case DXGI_FORMAT_R32_UINT: 2275 { 2276 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2277 return info; 2278 } 2279 case DXGI_FORMAT_R8G8B8A8_SINT: 2280 { 2281 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2282 return info; 2283 } 2284 case DXGI_FORMAT_R8G8B8A8_SNORM: 2285 { 2286 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2287 return info; 2288 } 2289 case DXGI_FORMAT_R8G8B8A8_TYPELESS: 2290 { 2291 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2292 return info; 2293 } 2294 case DXGI_FORMAT_R8G8B8A8_UINT: 2295 { 2296 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2297 return info; 2298 } 2299 case DXGI_FORMAT_R8G8B8A8_UNORM: 2300 { 2301 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2302 return info; 2303 } 2304 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 2305 { 2306 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2307 return info; 2308 } 2309 case DXGI_FORMAT_R8G8_B8G8_UNORM: 2310 { 2311 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2312 return info; 2313 } 2314 case DXGI_FORMAT_R8G8_SINT: 2315 { 2316 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2317 return info; 2318 } 2319 case DXGI_FORMAT_R8G8_SNORM: 2320 { 2321 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2322 return info; 2323 } 2324 case DXGI_FORMAT_R8G8_TYPELESS: 2325 { 2326 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2327 return info; 2328 } 2329 case DXGI_FORMAT_R8G8_UINT: 2330 { 2331 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2332 return info; 2333 } 2334 case DXGI_FORMAT_R8G8_UNORM: 2335 { 2336 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2337 return info; 2338 } 2339 case DXGI_FORMAT_R8_SINT: 2340 { 2341 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2342 return info; 2343 } 2344 case DXGI_FORMAT_R8_SNORM: 2345 { 2346 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2347 return info; 2348 } 2349 case DXGI_FORMAT_R8_TYPELESS: 2350 { 2351 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2352 return info; 2353 } 2354 case DXGI_FORMAT_R8_UINT: 2355 { 2356 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2357 return info; 2358 } 2359 case DXGI_FORMAT_R8_UNORM: 2360 { 2361 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2362 return info; 2363 } 2364 case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: 2365 { 2366 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2367 return info; 2368 } 2369 case DXGI_FORMAT_UNKNOWN: 2370 { 2371 static const DXGISupport info(0, F_2D | F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2372 return info; 2373 } 2374 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 2375 { 2376 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2377 return info; 2378 } 2379 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 2380 { 2381 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2382 return info; 2383 } 2384 case DXGI_FORMAT_Y210: 2385 { 2386 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2387 return info; 2388 } 2389 case DXGI_FORMAT_Y216: 2390 { 2391 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2392 return info; 2393 } 2394 case DXGI_FORMAT_Y410: 2395 { 2396 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2397 return info; 2398 } 2399 case DXGI_FORMAT_Y416: 2400 { 2401 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2402 return info; 2403 } 2404 case DXGI_FORMAT_YUY2: 2405 { 2406 static const DXGISupport info(0, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2407 return info; 2408 } 2409 2410 default: 2411 UNREACHABLE(); 2412 return GetDefaultSupport(); 2413 } 2414 // clang-format on 2415 } 2416 2417 const DXGISupport &GetDXGISupport_11_1(DXGI_FORMAT dxgiFormat) 2418 { 2419 // clang-format off 2420 switch (dxgiFormat) 2421 { 2422 case DXGI_FORMAT_420_OPAQUE: 2423 { 2424 static const DXGISupport info(F_2D, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2425 return info; 2426 } 2427 case DXGI_FORMAT_A8P8: 2428 { 2429 static const DXGISupport info(F_2D, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2430 return info; 2431 } 2432 case DXGI_FORMAT_A8_UNORM: 2433 { 2434 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2435 return info; 2436 } 2437 case DXGI_FORMAT_AI44: 2438 { 2439 static const DXGISupport info(F_2D, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2440 return info; 2441 } 2442 case DXGI_FORMAT_AYUV: 2443 { 2444 static const DXGISupport info(F_2D | F_RT | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2445 return info; 2446 } 2447 case DXGI_FORMAT_B4G4R4A4_UNORM: 2448 { 2449 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 2450 return info; 2451 } 2452 case DXGI_FORMAT_B5G5R5A1_UNORM: 2453 { 2454 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_SAMPLE, F_DS, F_MS | F_RT); 2455 return info; 2456 } 2457 case DXGI_FORMAT_B5G6R5_UNORM: 2458 { 2459 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2460 return info; 2461 } 2462 case DXGI_FORMAT_B8G8R8A8_TYPELESS: 2463 { 2464 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 2465 return info; 2466 } 2467 case DXGI_FORMAT_B8G8R8A8_UNORM: 2468 { 2469 static const DXGISupport info(F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_2D | F_3D | F_CUBE | F_MS); 2470 return info; 2471 } 2472 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: 2473 { 2474 static const DXGISupport info(F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_2D | F_3D | F_CUBE | F_MS); 2475 return info; 2476 } 2477 case DXGI_FORMAT_B8G8R8X8_TYPELESS: 2478 { 2479 static const DXGISupport info(0, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D | F_CUBE); 2480 return info; 2481 } 2482 case DXGI_FORMAT_B8G8R8X8_UNORM: 2483 { 2484 static const DXGISupport info(F_RT | F_SAMPLE, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS); 2485 return info; 2486 } 2487 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: 2488 { 2489 static const DXGISupport info(F_RT | F_SAMPLE, F_DS | F_MIPGEN, F_2D | F_3D | F_CUBE | F_MS); 2490 return info; 2491 } 2492 case DXGI_FORMAT_BC1_TYPELESS: 2493 { 2494 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2495 return info; 2496 } 2497 case DXGI_FORMAT_BC1_UNORM: 2498 { 2499 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2500 return info; 2501 } 2502 case DXGI_FORMAT_BC1_UNORM_SRGB: 2503 { 2504 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2505 return info; 2506 } 2507 case DXGI_FORMAT_BC2_TYPELESS: 2508 { 2509 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2510 return info; 2511 } 2512 case DXGI_FORMAT_BC2_UNORM: 2513 { 2514 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2515 return info; 2516 } 2517 case DXGI_FORMAT_BC2_UNORM_SRGB: 2518 { 2519 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2520 return info; 2521 } 2522 case DXGI_FORMAT_BC3_TYPELESS: 2523 { 2524 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2525 return info; 2526 } 2527 case DXGI_FORMAT_BC3_UNORM: 2528 { 2529 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2530 return info; 2531 } 2532 case DXGI_FORMAT_BC3_UNORM_SRGB: 2533 { 2534 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2535 return info; 2536 } 2537 case DXGI_FORMAT_BC4_SNORM: 2538 { 2539 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2540 return info; 2541 } 2542 case DXGI_FORMAT_BC4_TYPELESS: 2543 { 2544 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2545 return info; 2546 } 2547 case DXGI_FORMAT_BC4_UNORM: 2548 { 2549 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2550 return info; 2551 } 2552 case DXGI_FORMAT_BC5_SNORM: 2553 { 2554 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2555 return info; 2556 } 2557 case DXGI_FORMAT_BC5_TYPELESS: 2558 { 2559 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2560 return info; 2561 } 2562 case DXGI_FORMAT_BC5_UNORM: 2563 { 2564 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2565 return info; 2566 } 2567 case DXGI_FORMAT_BC6H_SF16: 2568 { 2569 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2570 return info; 2571 } 2572 case DXGI_FORMAT_BC6H_TYPELESS: 2573 { 2574 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2575 return info; 2576 } 2577 case DXGI_FORMAT_BC6H_UF16: 2578 { 2579 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2580 return info; 2581 } 2582 case DXGI_FORMAT_BC7_TYPELESS: 2583 { 2584 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2585 return info; 2586 } 2587 case DXGI_FORMAT_BC7_UNORM: 2588 { 2589 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2590 return info; 2591 } 2592 case DXGI_FORMAT_BC7_UNORM_SRGB: 2593 { 2594 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2595 return info; 2596 } 2597 case DXGI_FORMAT_D16_UNORM: 2598 { 2599 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 2600 return info; 2601 } 2602 case DXGI_FORMAT_D24_UNORM_S8_UINT: 2603 { 2604 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_RT | F_SAMPLE, F_MS); 2605 return info; 2606 } 2607 case DXGI_FORMAT_D32_FLOAT: 2608 { 2609 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 2610 return info; 2611 } 2612 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: 2613 { 2614 static const DXGISupport info(F_2D | F_CUBE | F_DS, F_3D | F_MIPGEN | F_RT | F_SAMPLE, F_MS); 2615 return info; 2616 } 2617 case DXGI_FORMAT_G8R8_G8B8_UNORM: 2618 { 2619 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2620 return info; 2621 } 2622 case DXGI_FORMAT_IA44: 2623 { 2624 static const DXGISupport info(F_2D, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2625 return info; 2626 } 2627 case DXGI_FORMAT_NV11: 2628 { 2629 static const DXGISupport info(F_2D | F_RT | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2630 return info; 2631 } 2632 case DXGI_FORMAT_NV12: 2633 { 2634 static const DXGISupport info(F_2D | F_RT | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2635 return info; 2636 } 2637 case DXGI_FORMAT_P010: 2638 { 2639 static const DXGISupport info(F_2D | F_RT | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2640 return info; 2641 } 2642 case DXGI_FORMAT_P016: 2643 { 2644 static const DXGISupport info(F_2D | F_RT | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN, F_MS); 2645 return info; 2646 } 2647 case DXGI_FORMAT_P8: 2648 { 2649 static const DXGISupport info(F_2D, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2650 return info; 2651 } 2652 case DXGI_FORMAT_R10G10B10A2_TYPELESS: 2653 { 2654 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2655 return info; 2656 } 2657 case DXGI_FORMAT_R10G10B10A2_UINT: 2658 { 2659 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2660 return info; 2661 } 2662 case DXGI_FORMAT_R10G10B10A2_UNORM: 2663 { 2664 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2665 return info; 2666 } 2667 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: 2668 { 2669 static const DXGISupport info(0, F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, F_2D | F_3D); 2670 return info; 2671 } 2672 case DXGI_FORMAT_R11G11B10_FLOAT: 2673 { 2674 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2675 return info; 2676 } 2677 case DXGI_FORMAT_R16G16B16A16_FLOAT: 2678 { 2679 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2680 return info; 2681 } 2682 case DXGI_FORMAT_R16G16B16A16_SINT: 2683 { 2684 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2685 return info; 2686 } 2687 case DXGI_FORMAT_R16G16B16A16_SNORM: 2688 { 2689 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2690 return info; 2691 } 2692 case DXGI_FORMAT_R16G16B16A16_TYPELESS: 2693 { 2694 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2695 return info; 2696 } 2697 case DXGI_FORMAT_R16G16B16A16_UINT: 2698 { 2699 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2700 return info; 2701 } 2702 case DXGI_FORMAT_R16G16B16A16_UNORM: 2703 { 2704 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2705 return info; 2706 } 2707 case DXGI_FORMAT_R16G16_FLOAT: 2708 { 2709 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2710 return info; 2711 } 2712 case DXGI_FORMAT_R16G16_SINT: 2713 { 2714 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2715 return info; 2716 } 2717 case DXGI_FORMAT_R16G16_SNORM: 2718 { 2719 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2720 return info; 2721 } 2722 case DXGI_FORMAT_R16G16_TYPELESS: 2723 { 2724 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2725 return info; 2726 } 2727 case DXGI_FORMAT_R16G16_UINT: 2728 { 2729 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2730 return info; 2731 } 2732 case DXGI_FORMAT_R16G16_UNORM: 2733 { 2734 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2735 return info; 2736 } 2737 case DXGI_FORMAT_R16_FLOAT: 2738 { 2739 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2740 return info; 2741 } 2742 case DXGI_FORMAT_R16_SINT: 2743 { 2744 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2745 return info; 2746 } 2747 case DXGI_FORMAT_R16_SNORM: 2748 { 2749 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2750 return info; 2751 } 2752 case DXGI_FORMAT_R16_TYPELESS: 2753 { 2754 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2755 return info; 2756 } 2757 case DXGI_FORMAT_R16_UINT: 2758 { 2759 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2760 return info; 2761 } 2762 case DXGI_FORMAT_R16_UNORM: 2763 { 2764 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2765 return info; 2766 } 2767 case DXGI_FORMAT_R1_UNORM: 2768 { 2769 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2770 return info; 2771 } 2772 case DXGI_FORMAT_R24G8_TYPELESS: 2773 { 2774 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2775 return info; 2776 } 2777 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: 2778 { 2779 static const DXGISupport info(F_2D | F_CUBE | F_SAMPLE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2780 return info; 2781 } 2782 case DXGI_FORMAT_R32G32B32A32_FLOAT: 2783 { 2784 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2785 return info; 2786 } 2787 case DXGI_FORMAT_R32G32B32A32_SINT: 2788 { 2789 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2790 return info; 2791 } 2792 case DXGI_FORMAT_R32G32B32A32_TYPELESS: 2793 { 2794 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2795 return info; 2796 } 2797 case DXGI_FORMAT_R32G32B32A32_UINT: 2798 { 2799 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2800 return info; 2801 } 2802 case DXGI_FORMAT_R32G32B32_FLOAT: 2803 { 2804 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN, F_MS | F_RT); 2805 return info; 2806 } 2807 case DXGI_FORMAT_R32G32B32_SINT: 2808 { 2809 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 2810 return info; 2811 } 2812 case DXGI_FORMAT_R32G32B32_TYPELESS: 2813 { 2814 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2815 return info; 2816 } 2817 case DXGI_FORMAT_R32G32B32_UINT: 2818 { 2819 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_SAMPLE, F_MS | F_RT); 2820 return info; 2821 } 2822 case DXGI_FORMAT_R32G32_FLOAT: 2823 { 2824 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2825 return info; 2826 } 2827 case DXGI_FORMAT_R32G32_SINT: 2828 { 2829 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2830 return info; 2831 } 2832 case DXGI_FORMAT_R32G32_TYPELESS: 2833 { 2834 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2835 return info; 2836 } 2837 case DXGI_FORMAT_R32G32_UINT: 2838 { 2839 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2840 return info; 2841 } 2842 case DXGI_FORMAT_R32G8X24_TYPELESS: 2843 { 2844 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2845 return info; 2846 } 2847 case DXGI_FORMAT_R32_FLOAT: 2848 { 2849 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2850 return info; 2851 } 2852 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: 2853 { 2854 static const DXGISupport info(F_2D | F_CUBE | F_SAMPLE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2855 return info; 2856 } 2857 case DXGI_FORMAT_R32_SINT: 2858 { 2859 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2860 return info; 2861 } 2862 case DXGI_FORMAT_R32_TYPELESS: 2863 { 2864 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2865 return info; 2866 } 2867 case DXGI_FORMAT_R32_UINT: 2868 { 2869 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2870 return info; 2871 } 2872 case DXGI_FORMAT_R8G8B8A8_SINT: 2873 { 2874 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2875 return info; 2876 } 2877 case DXGI_FORMAT_R8G8B8A8_SNORM: 2878 { 2879 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2880 return info; 2881 } 2882 case DXGI_FORMAT_R8G8B8A8_TYPELESS: 2883 { 2884 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2885 return info; 2886 } 2887 case DXGI_FORMAT_R8G8B8A8_UINT: 2888 { 2889 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2890 return info; 2891 } 2892 case DXGI_FORMAT_R8G8B8A8_UNORM: 2893 { 2894 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2895 return info; 2896 } 2897 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: 2898 { 2899 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2900 return info; 2901 } 2902 case DXGI_FORMAT_R8G8_B8G8_UNORM: 2903 { 2904 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2905 return info; 2906 } 2907 case DXGI_FORMAT_R8G8_SINT: 2908 { 2909 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2910 return info; 2911 } 2912 case DXGI_FORMAT_R8G8_SNORM: 2913 { 2914 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2915 return info; 2916 } 2917 case DXGI_FORMAT_R8G8_TYPELESS: 2918 { 2919 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2920 return info; 2921 } 2922 case DXGI_FORMAT_R8G8_UINT: 2923 { 2924 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2925 return info; 2926 } 2927 case DXGI_FORMAT_R8G8_UNORM: 2928 { 2929 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2930 return info; 2931 } 2932 case DXGI_FORMAT_R8_SINT: 2933 { 2934 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2935 return info; 2936 } 2937 case DXGI_FORMAT_R8_SNORM: 2938 { 2939 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2940 return info; 2941 } 2942 case DXGI_FORMAT_R8_TYPELESS: 2943 { 2944 static const DXGISupport info(F_2D | F_3D | F_CUBE, F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2945 return info; 2946 } 2947 case DXGI_FORMAT_R8_UINT: 2948 { 2949 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_RT, F_DS | F_MIPGEN | F_SAMPLE, F_MS); 2950 return info; 2951 } 2952 case DXGI_FORMAT_R8_UNORM: 2953 { 2954 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_MIPGEN | F_RT | F_SAMPLE, F_DS, F_MS); 2955 return info; 2956 } 2957 case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: 2958 { 2959 static const DXGISupport info(F_2D | F_3D | F_CUBE | F_SAMPLE, F_DS | F_MIPGEN | F_MS | F_RT, 0); 2960 return info; 2961 } 2962 case DXGI_FORMAT_UNKNOWN: 2963 { 2964 static const DXGISupport info(0, F_2D | F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2965 return info; 2966 } 2967 case DXGI_FORMAT_X24_TYPELESS_G8_UINT: 2968 { 2969 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2970 return info; 2971 } 2972 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: 2973 { 2974 static const DXGISupport info(F_2D | F_CUBE, F_3D | F_DS | F_MIPGEN | F_MS | F_RT | F_SAMPLE, 0); 2975 return info; 2976 } 2977 case DXGI_FORMAT_Y210: 2978 { 2979 static const DXGISupport info(F_2D | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2980 return info; 2981 } 2982 case DXGI_FORMAT_Y216: 2983 { 2984 static const DXGISupport info(F_2D | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2985 return info; 2986 } 2987 case DXGI_FORMAT_Y410: 2988 { 2989 static const DXGISupport info(F_2D | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2990 return info; 2991 } 2992 case DXGI_FORMAT_Y416: 2993 { 2994 static const DXGISupport info(F_2D | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 2995 return info; 2996 } 2997 case DXGI_FORMAT_YUY2: 2998 { 2999 static const DXGISupport info(F_2D | F_SAMPLE, F_3D | F_CUBE | F_DS | F_MIPGEN | F_MS | F_RT, 0); 3000 return info; 3001 } 3002 3003 default: 3004 UNREACHABLE(); 3005 return GetDefaultSupport(); 3006 } 3007 // clang-format on 3008 } 3009 3010 } // namespace 3011 3012 #undef F_2D 3013 #undef F_3D 3014 #undef F_CUBE 3015 #undef F_SAMPLE 3016 #undef F_RT 3017 #undef F_MS 3018 #undef F_DS 3019 #undef F_MIPGEN 3020 3021 const DXGISupport &GetDXGISupport(DXGI_FORMAT dxgiFormat, D3D_FEATURE_LEVEL featureLevel) 3022 { 3023 switch (featureLevel) 3024 { 3025 case D3D_FEATURE_LEVEL_9_3: 3026 return GetDXGISupport_9_3(dxgiFormat); 3027 case D3D_FEATURE_LEVEL_10_0: 3028 return GetDXGISupport_10_0(dxgiFormat); 3029 case D3D_FEATURE_LEVEL_10_1: 3030 return GetDXGISupport_10_1(dxgiFormat); 3031 case D3D_FEATURE_LEVEL_11_0: 3032 return GetDXGISupport_11_0(dxgiFormat); 3033 case D3D_FEATURE_LEVEL_11_1: 3034 return GetDXGISupport_11_1(dxgiFormat); 3035 default: 3036 return GetDefaultSupport(); 3037 } 3038 } 3039 3040 } // namespace d3d11 3041 3042 } // namespace rx