1 // GENERATED FILE - DO NOT EDIT. 2 // Generated by gen_features.py using data from vk_features.json. 3 // 4 // Copyright 2022 The ANGLE Project Authors. All rights reserved. 5 // Use of this source code is governed by a BSD-style license that can be 6 // found in the LICENSE file. 7 // 8 // FeaturesVk_autogen.h: Optional features for the Vulkan renderer. 9 10 #ifndef ANGLE_PLATFORM_AUTOGEN_FEATURESVK_H_ 11 #define ANGLE_PLATFORM_AUTOGEN_FEATURESVK_H_ 12 13 #include "platform/Feature.h" 14 15 namespace angle 16 { 17 18 struct FeaturesVk : FeatureSetBase 19 { 20 FeaturesVk(); 21 ~FeaturesVk(); 22 23 FeatureInfo appendAliasedMemoryDecorations = { 24 "appendAliasedMemoryDecorations", 25 FeatureCategory::VulkanWorkarounds, 26 &members, 27 }; 28 29 FeatureInfo bresenhamLineRasterization = { 30 "bresenhamLineRasterization", 31 FeatureCategory::VulkanFeatures, 32 &members, 33 }; 34 35 FeatureInfo provokingVertex = { 36 "provokingVertex", 37 FeatureCategory::VulkanFeatures, 38 &members, 39 }; 40 41 FeatureInfo forceFallbackFormat = { 42 "forceFallbackFormat", 43 FeatureCategory::VulkanWorkarounds, 44 &members, 45 }; 46 47 FeatureInfo clampPointSize = { 48 "clampPointSize", 49 FeatureCategory::VulkanWorkarounds, 50 &members, 51 }; 52 53 FeatureInfo supportsDepthClampZeroOne = { 54 "supportsDepthClampZeroOne", 55 FeatureCategory::VulkanFeatures, 56 &members, 57 }; 58 59 FeatureInfo clampFragDepth = { 60 "clampFragDepth", 61 FeatureCategory::VulkanWorkarounds, 62 &members, 63 }; 64 65 FeatureInfo mutableMipmapTextureUpload = { 66 "mutableMipmapTextureUpload", 67 FeatureCategory::VulkanFeatures, 68 &members, 69 }; 70 71 FeatureInfo useVmaForImageSuballocation = { 72 "useVmaForImageSuballocation", 73 FeatureCategory::VulkanFeatures, 74 &members, 75 }; 76 77 FeatureInfo supportsMemoryBudget = { 78 "supportsMemoryBudget", 79 FeatureCategory::VulkanFeatures, 80 &members, 81 }; 82 83 FeatureInfo supportsRenderpass2 = { 84 "supportsRenderpass2", 85 FeatureCategory::VulkanFeatures, 86 &members, 87 }; 88 89 FeatureInfo supportsIncrementalPresent = { 90 "supportsIncrementalPresent", 91 FeatureCategory::VulkanFeatures, 92 &members, 93 }; 94 95 FeatureInfo supportsAndroidHardwareBuffer = { 96 "supportsAndroidHardwareBuffer", 97 FeatureCategory::VulkanFeatures, 98 &members, 99 }; 100 101 FeatureInfo supportsGGPFrameToken = { 102 "supportsGGPFrameToken", 103 FeatureCategory::VulkanFeatures, 104 &members, 105 }; 106 107 FeatureInfo supportsExternalMemoryFd = { 108 "supportsExternalMemoryFd", 109 FeatureCategory::VulkanFeatures, 110 &members, 111 }; 112 113 FeatureInfo supportsExternalMemoryFuchsia = { 114 "supportsExternalMemoryFuchsia", 115 FeatureCategory::VulkanFeatures, 116 &members, 117 }; 118 119 FeatureInfo supportsExternalFenceCapabilities = { 120 "supportsExternalFenceCapabilities", 121 FeatureCategory::VulkanFeatures, 122 &members, 123 }; 124 125 FeatureInfo supportsExternalSemaphoreCapabilities = { 126 "supportsExternalSemaphoreCapabilities", 127 FeatureCategory::VulkanFeatures, 128 &members, 129 }; 130 131 FeatureInfo supportsExternalSemaphoreFd = { 132 "supportsExternalSemaphoreFd", 133 FeatureCategory::VulkanFeatures, 134 &members, 135 }; 136 137 FeatureInfo supportsExternalSemaphoreFuchsia = { 138 "supportsExternalSemaphoreFuchsia", 139 FeatureCategory::VulkanFeatures, 140 &members, 141 }; 142 143 FeatureInfo supportsExternalFenceFd = { 144 "supportsExternalFenceFd", 145 FeatureCategory::VulkanFeatures, 146 &members, 147 }; 148 149 FeatureInfo supportsAndroidNativeFenceSync = { 150 "supportsAndroidNativeFenceSync", 151 FeatureCategory::VulkanFeatures, 152 &members, 153 }; 154 155 FeatureInfo supportsImageCubeArray = { 156 "supportsImageCubeArray", 157 FeatureCategory::VulkanFeatures, 158 &members, 159 }; 160 161 FeatureInfo supportsPipelineStatisticsQuery = { 162 "supportsPipelineStatisticsQuery", 163 FeatureCategory::VulkanFeatures, 164 &members, 165 }; 166 167 FeatureInfo supportsShaderStencilExport = { 168 "supportsShaderStencilExport", 169 FeatureCategory::VulkanFeatures, 170 &members, 171 }; 172 173 FeatureInfo supportsYUVSamplerConversion = { 174 "supportsYUVSamplerConversion", 175 FeatureCategory::VulkanFeatures, 176 &members, 177 }; 178 179 FeatureInfo emulateTransformFeedback = { 180 "emulateTransformFeedback", 181 FeatureCategory::VulkanFeatures, 182 &members, 183 }; 184 185 FeatureInfo supportsTransformFeedbackExtension = { 186 "supportsTransformFeedbackExtension", 187 FeatureCategory::VulkanFeatures, 188 &members, 189 }; 190 191 FeatureInfo supportsGeometryStreamsCapability = { 192 "supportsGeometryStreamsCapability", 193 FeatureCategory::VulkanFeatures, 194 &members, 195 }; 196 197 FeatureInfo supportsIndexTypeUint8 = { 198 "supportsIndexTypeUint8", 199 FeatureCategory::VulkanFeatures, 200 &members, 201 }; 202 203 FeatureInfo supportsCustomBorderColor = { 204 "supportsCustomBorderColor", 205 FeatureCategory::VulkanFeatures, 206 &members, 207 }; 208 209 FeatureInfo supportsMultiDrawIndirect = { 210 "supportsMultiDrawIndirect", 211 FeatureCategory::VulkanFeatures, 212 &members, 213 }; 214 215 FeatureInfo supportsDepthStencilResolve = { 216 "supportsDepthStencilResolve", 217 FeatureCategory::VulkanFeatures, 218 &members, 219 }; 220 221 FeatureInfo supportsDepthStencilIndependentResolveNone = { 222 "supportsDepthStencilIndependentResolveNone", 223 FeatureCategory::VulkanFeatures, 224 &members, 225 }; 226 227 FeatureInfo supportsMultisampledRenderToSingleSampled = { 228 "supportsMultisampledRenderToSingleSampled", 229 FeatureCategory::VulkanFeatures, 230 &members, 231 }; 232 233 FeatureInfo preferMSRTSSFlagByDefault = { 234 "preferMSRTSSFlagByDefault", 235 FeatureCategory::VulkanFeatures, 236 &members, 237 }; 238 239 FeatureInfo supportsMultiview = { 240 "supportsMultiview", 241 FeatureCategory::VulkanFeatures, 242 &members, 243 }; 244 245 FeatureInfo forceD16TexFilter = { 246 "forceD16TexFilter", 247 FeatureCategory::VulkanWorkarounds, 248 &members, 249 }; 250 251 FeatureInfo disableFlippingBlitWithCommand = { 252 "disableFlippingBlitWithCommand", 253 FeatureCategory::VulkanWorkarounds, 254 &members, 255 }; 256 257 FeatureInfo perFrameWindowSizeQuery = { 258 "perFrameWindowSizeQuery", 259 FeatureCategory::VulkanWorkarounds, 260 &members, 261 }; 262 263 FeatureInfo padBuffersToMaxVertexAttribStride = { 264 "padBuffersToMaxVertexAttribStride", 265 FeatureCategory::VulkanWorkarounds, 266 &members, 267 }; 268 269 FeatureInfo supportsExternalMemoryDmaBufAndModifiers = { 270 "supportsExternalMemoryDmaBufAndModifiers", 271 FeatureCategory::VulkanFeatures, 272 &members, 273 }; 274 275 FeatureInfo supportsExternalMemoryHost = { 276 "supportsExternalMemoryHost", 277 FeatureCategory::VulkanFeatures, 278 &members, 279 }; 280 281 FeatureInfo allocateNonZeroMemory = { 282 "allocateNonZeroMemory", 283 FeatureCategory::VulkanFeatures, 284 &members, 285 }; 286 287 FeatureInfo logMemoryReportCallbacks = { 288 "logMemoryReportCallbacks", 289 FeatureCategory::VulkanFeatures, 290 &members, 291 }; 292 293 FeatureInfo logMemoryReportStats = { 294 "logMemoryReportStats", 295 FeatureCategory::VulkanFeatures, 296 &members, 297 }; 298 299 FeatureInfo preferCPUForBufferSubData = { 300 "preferCPUForBufferSubData", 301 FeatureCategory::VulkanFeatures, 302 &members, 303 }; 304 305 FeatureInfo persistentlyMappedBuffers = { 306 "persistentlyMappedBuffers", 307 FeatureCategory::VulkanFeatures, 308 &members, 309 }; 310 311 FeatureInfo enablePreRotateSurfaces = { 312 "enablePreRotateSurfaces", 313 FeatureCategory::VulkanFeatures, 314 &members, 315 }; 316 317 FeatureInfo enablePrecisionQualifiers = { 318 "enablePrecisionQualifiers", 319 FeatureCategory::VulkanFeatures, 320 &members, 321 }; 322 323 FeatureInfo varyingsRequireMatchingPrecisionInSpirv = { 324 "varyingsRequireMatchingPrecisionInSpirv", 325 FeatureCategory::VulkanWorkarounds, 326 &members, 327 }; 328 329 FeatureInfo preferAggregateBarrierCalls = { 330 "preferAggregateBarrierCalls", 331 FeatureCategory::VulkanWorkarounds, 332 &members, 333 }; 334 335 FeatureInfo preferSkippingInvalidateForEmulatedFormats = { 336 "preferSkippingInvalidateForEmulatedFormats", 337 FeatureCategory::VulkanWorkarounds, 338 &members, 339 }; 340 341 FeatureInfo asyncCommandQueue = { 342 "asyncCommandQueue", 343 FeatureCategory::VulkanFeatures, 344 &members, 345 }; 346 347 FeatureInfo slowAsyncCommandQueueForTesting = { 348 "slowAsyncCommandQueueForTesting", 349 FeatureCategory::VulkanWorkarounds, 350 &members, 351 }; 352 353 FeatureInfo supportsShaderFloat16 = { 354 "supportsShaderFloat16", 355 FeatureCategory::VulkanFeatures, 356 &members, 357 }; 358 359 FeatureInfo supportsShaderInt8 = { 360 "supportsShaderInt8", 361 FeatureCategory::VulkanFeatures, 362 &members, 363 }; 364 365 FeatureInfo supportsShaderFloat64 = { 366 "supportsShaderFloat64", 367 FeatureCategory::VulkanFeatures, 368 &members, 369 }; 370 371 FeatureInfo allowGenerateMipmapWithCompute = { 372 "allowGenerateMipmapWithCompute", 373 FeatureCategory::VulkanFeatures, 374 &members, 375 }; 376 377 FeatureInfo supportsRenderPassStoreOpNone = { 378 "supportsRenderPassStoreOpNone", 379 FeatureCategory::VulkanFeatures, 380 &members, 381 }; 382 383 FeatureInfo supportsRenderPassLoadStoreOpNone = { 384 "supportsRenderPassLoadStoreOpNone", 385 FeatureCategory::VulkanFeatures, 386 &members, 387 }; 388 389 FeatureInfo disallowMixedDepthStencilLoadOpNoneAndLoad = { 390 "disallowMixedDepthStencilLoadOpNoneAndLoad", 391 FeatureCategory::VulkanWorkarounds, 392 &members, 393 }; 394 395 FeatureInfo supportsDepthClipControl = { 396 "supportsDepthClipControl", 397 FeatureCategory::VulkanFeatures, 398 &members, 399 }; 400 401 FeatureInfo supportsPrimitiveTopologyListRestart = { 402 "supportsPrimitiveTopologyListRestart", 403 FeatureCategory::VulkanFeatures, 404 &members, 405 }; 406 407 FeatureInfo supportsBlendOperationAdvanced = { 408 "supportsBlendOperationAdvanced", 409 FeatureCategory::VulkanFeatures, 410 &members, 411 }; 412 413 FeatureInfo supportsBlendOperationAdvancedCoherent = { 414 "supportsBlendOperationAdvancedCoherent", 415 FeatureCategory::VulkanFeatures, 416 &members, 417 }; 418 419 FeatureInfo forceMaxUniformBufferSize16KB = { 420 "forceMaxUniformBufferSize16KB", 421 FeatureCategory::VulkanWorkarounds, 422 &members, 423 }; 424 425 FeatureInfo supportsImageFormatList = { 426 "supportsImageFormatList", 427 FeatureCategory::VulkanFeatures, 428 &members, 429 }; 430 431 FeatureInfo allowMultisampledRenderToTextureEmulation = { 432 "allowMultisampledRenderToTextureEmulation", 433 FeatureCategory::VulkanWorkarounds, 434 &members, 435 }; 436 437 FeatureInfo enableMultisampledRenderToTexture = { 438 "enableMultisampledRenderToTexture", 439 FeatureCategory::VulkanWorkarounds, 440 &members, 441 }; 442 443 FeatureInfo waitIdleBeforeSwapchainRecreation = { 444 "waitIdleBeforeSwapchainRecreation", 445 FeatureCategory::VulkanWorkarounds, 446 &members, 447 }; 448 449 FeatureInfo forceTextureLodOffset1 = { 450 "forceTextureLodOffset1", 451 FeatureCategory::VulkanWorkarounds, 452 &members, 453 }; 454 455 FeatureInfo forceTextureLodOffset2 = { 456 "forceTextureLodOffset2", 457 FeatureCategory::VulkanWorkarounds, 458 &members, 459 }; 460 461 FeatureInfo forceTextureLodOffset3 = { 462 "forceTextureLodOffset3", 463 FeatureCategory::VulkanWorkarounds, 464 &members, 465 }; 466 467 FeatureInfo forceTextureLodOffset4 = { 468 "forceTextureLodOffset4", 469 FeatureCategory::VulkanWorkarounds, 470 &members, 471 }; 472 473 FeatureInfo forceNearestFiltering = { 474 "forceNearestFiltering", 475 FeatureCategory::VulkanWorkarounds, 476 &members, 477 }; 478 479 FeatureInfo forceNearestMipFiltering = { 480 "forceNearestMipFiltering", 481 FeatureCategory::VulkanWorkarounds, 482 &members, 483 }; 484 485 FeatureInfo compressVertexData = { 486 "compressVertexData", 487 FeatureCategory::VulkanWorkarounds, 488 &members, 489 }; 490 491 FeatureInfo preferDrawClearOverVkCmdClearAttachments = { 492 "preferDrawClearOverVkCmdClearAttachments", 493 FeatureCategory::VulkanWorkarounds, 494 &members, 495 }; 496 497 FeatureInfo emulatedPrerotation90 = { 498 "emulatedPrerotation90", 499 FeatureCategory::VulkanFeatures, 500 &members, 501 }; 502 503 FeatureInfo emulatedPrerotation180 = { 504 "emulatedPrerotation180", 505 FeatureCategory::VulkanFeatures, 506 &members, 507 }; 508 509 FeatureInfo emulatedPrerotation270 = { 510 "emulatedPrerotation270", 511 FeatureCategory::VulkanFeatures, 512 &members, 513 }; 514 515 FeatureInfo preferDriverUniformOverSpecConst = { 516 "preferDriverUniformOverSpecConst", 517 FeatureCategory::VulkanFeatures, 518 &members, 519 }; 520 521 FeatureInfo exposeNonConformantExtensionsAndVersions = { 522 "exposeNonConformantExtensionsAndVersions", 523 FeatureCategory::VulkanWorkarounds, 524 &members, 525 }; 526 527 FeatureInfo exposeES32ForTesting = { 528 "exposeES32ForTesting", 529 FeatureCategory::VulkanWorkarounds, 530 &members, 531 }; 532 533 FeatureInfo emulateR32fImageAtomicExchange = { 534 "emulateR32fImageAtomicExchange", 535 FeatureCategory::VulkanWorkarounds, 536 &members, 537 }; 538 539 FeatureInfo forceFragmentShaderPrecisionHighpToMediump = { 540 "forceFragmentShaderPrecisionHighpToMediump", 541 FeatureCategory::VulkanWorkarounds, 542 &members, 543 }; 544 545 FeatureInfo preferSubmitAtFBOBoundary = { 546 "preferSubmitAtFBOBoundary", 547 FeatureCategory::VulkanWorkarounds, 548 &members, 549 }; 550 551 FeatureInfo useMultipleDescriptorsForExternalFormats = { 552 "useMultipleDescriptorsForExternalFormats", 553 FeatureCategory::VulkanWorkarounds, 554 &members, 555 }; 556 557 FeatureInfo supportsProtectedMemory = { 558 "supportsProtectedMemory", 559 FeatureCategory::VulkanFeatures, 560 &members, 561 }; 562 563 FeatureInfo supportsHostQueryReset = { 564 "supportsHostQueryReset", 565 FeatureCategory::VulkanFeatures, 566 &members, 567 }; 568 569 FeatureInfo supportsPipelineCreationFeedback = { 570 "supportsPipelineCreationFeedback", 571 FeatureCategory::VulkanFeatures, 572 &members, 573 }; 574 575 FeatureInfo supportsPrimitivesGeneratedQuery = { 576 "supportsPrimitivesGeneratedQuery", 577 FeatureCategory::VulkanFeatures, 578 &members, 579 }; 580 581 FeatureInfo supportsSurfaceCapabilities2Extension = { 582 "supportsSurfaceCapabilities2Extension", 583 FeatureCategory::VulkanFeatures, 584 &members, 585 }; 586 587 FeatureInfo supportsSurfaceProtectedCapabilitiesExtension = { 588 "supportsSurfaceProtectedCapabilitiesExtension", 589 FeatureCategory::VulkanFeatures, 590 &members, 591 }; 592 593 FeatureInfo supportsSurfacelessQueryExtension = { 594 "supportsSurfacelessQueryExtension", 595 FeatureCategory::VulkanFeatures, 596 &members, 597 }; 598 599 FeatureInfo supportsSurfaceProtectedSwapchains = { 600 "supportsSurfaceProtectedSwapchains", 601 FeatureCategory::VulkanFeatures, 602 &members, 603 }; 604 605 FeatureInfo overrideSurfaceFormatRGB8ToRGBA8 = { 606 "overrideSurfaceFormatRGB8ToRGBA8", 607 FeatureCategory::VulkanWorkarounds, 608 &members, 609 }; 610 611 FeatureInfo supportsSharedPresentableImageExtension = { 612 "supportsSharedPresentableImageExtension", 613 FeatureCategory::VulkanFeatures, 614 &members, 615 }; 616 617 FeatureInfo supportsShaderFramebufferFetch = { 618 "supportsShaderFramebufferFetch", 619 FeatureCategory::VulkanFeatures, 620 &members, 621 }; 622 623 FeatureInfo supportsShaderFramebufferFetchNonCoherent = { 624 "supportsShaderFramebufferFetchNonCoherent", 625 FeatureCategory::VulkanFeatures, 626 &members, 627 }; 628 629 FeatureInfo supportsShaderFramebufferFetchDepthStencil = { 630 "supportsShaderFramebufferFetchDepthStencil", 631 FeatureCategory::VulkanFeatures, 632 &members, 633 }; 634 635 FeatureInfo permanentlySwitchToFramebufferFetchMode = { 636 "permanentlySwitchToFramebufferFetchMode", 637 FeatureCategory::VulkanFeatures, 638 &members, 639 }; 640 641 FeatureInfo supportsLockSurfaceExtension = { 642 "supportsLockSurfaceExtension", 643 FeatureCategory::VulkanFeatures, 644 &members, 645 }; 646 647 FeatureInfo swapbuffersOnFlushOrFinishWithSingleBuffer = { 648 "swapbuffersOnFlushOrFinishWithSingleBuffer", 649 FeatureCategory::VulkanFeatures, 650 &members, 651 }; 652 653 FeatureInfo emulateDithering = { 654 "emulateDithering", 655 FeatureCategory::VulkanFeatures, 656 &members, 657 }; 658 659 FeatureInfo roundOutputAfterDithering = { 660 "roundOutputAfterDithering", 661 FeatureCategory::VulkanWorkarounds, 662 &members, 663 }; 664 665 FeatureInfo adjustClearColorPrecision = { 666 "adjustClearColorPrecision", 667 FeatureCategory::VulkanWorkarounds, 668 &members, 669 }; 670 671 FeatureInfo emulateAdvancedBlendEquations = { 672 "emulateAdvancedBlendEquations", 673 FeatureCategory::VulkanFeatures, 674 &members, 675 }; 676 677 FeatureInfo doubleDepthBiasConstantFactor = { 678 "doubleDepthBiasConstantFactor", 679 FeatureCategory::VulkanWorkarounds, 680 &members, 681 }; 682 683 FeatureInfo bottomLeftOriginPresentRegionRectangles = { 684 "bottomLeftOriginPresentRegionRectangles", 685 FeatureCategory::VulkanWorkarounds, 686 &members, 687 }; 688 689 FeatureInfo forceSubmitImmutableTextureUpdates = { 690 "forceSubmitImmutableTextureUpdates", 691 FeatureCategory::VulkanAppWorkarounds, 692 &members, 693 }; 694 695 FeatureInfo supportsSPIRV14 = { 696 "supportsSPIRV14", 697 FeatureCategory::VulkanFeatures, 698 &members, 699 }; 700 701 FeatureInfo retainSPIRVDebugInfo = { 702 "retainSPIRVDebugInfo", 703 FeatureCategory::VulkanFeatures, 704 &members, 705 }; 706 707 FeatureInfo warmUpPipelineCacheAtLink = { 708 "warmUpPipelineCacheAtLink", 709 FeatureCategory::VulkanFeatures, 710 &members, 711 }; 712 713 FeatureInfo preferDeviceLocalMemoryHostVisible = { 714 "preferDeviceLocalMemoryHostVisible", 715 FeatureCategory::VulkanFeatures, 716 &members, 717 }; 718 719 FeatureInfo supportsExtendedDynamicState = { 720 "supportsExtendedDynamicState", 721 FeatureCategory::VulkanFeatures, 722 &members, 723 }; 724 725 FeatureInfo useVertexInputBindingStrideDynamicState = { 726 "useVertexInputBindingStrideDynamicState", 727 FeatureCategory::VulkanWorkarounds, 728 &members, 729 }; 730 731 FeatureInfo useCullModeDynamicState = { 732 "useCullModeDynamicState", 733 FeatureCategory::VulkanWorkarounds, 734 &members, 735 }; 736 737 FeatureInfo useFrontFaceDynamicState = { 738 "useFrontFaceDynamicState", 739 FeatureCategory::VulkanWorkarounds, 740 &members, 741 }; 742 743 FeatureInfo useDepthTestEnableDynamicState = { 744 "useDepthTestEnableDynamicState", 745 FeatureCategory::VulkanWorkarounds, 746 &members, 747 }; 748 749 FeatureInfo useDepthWriteEnableDynamicState = { 750 "useDepthWriteEnableDynamicState", 751 FeatureCategory::VulkanWorkarounds, 752 &members, 753 }; 754 755 FeatureInfo useDepthCompareOpDynamicState = { 756 "useDepthCompareOpDynamicState", 757 FeatureCategory::VulkanWorkarounds, 758 &members, 759 }; 760 761 FeatureInfo useStencilTestEnableDynamicState = { 762 "useStencilTestEnableDynamicState", 763 FeatureCategory::VulkanWorkarounds, 764 &members, 765 }; 766 767 FeatureInfo useStencilOpDynamicState = { 768 "useStencilOpDynamicState", 769 FeatureCategory::VulkanWorkarounds, 770 &members, 771 }; 772 773 FeatureInfo supportsExtendedDynamicState2 = { 774 "supportsExtendedDynamicState2", 775 FeatureCategory::VulkanFeatures, 776 &members, 777 }; 778 779 FeatureInfo usePrimitiveRestartEnableDynamicState = { 780 "usePrimitiveRestartEnableDynamicState", 781 FeatureCategory::VulkanWorkarounds, 782 &members, 783 }; 784 785 FeatureInfo useRasterizerDiscardEnableDynamicState = { 786 "useRasterizerDiscardEnableDynamicState", 787 FeatureCategory::VulkanWorkarounds, 788 &members, 789 }; 790 791 FeatureInfo useDepthBiasEnableDynamicState = { 792 "useDepthBiasEnableDynamicState", 793 FeatureCategory::VulkanWorkarounds, 794 &members, 795 }; 796 797 FeatureInfo supportsLogicOpDynamicState = { 798 "supportsLogicOpDynamicState", 799 FeatureCategory::VulkanFeatures, 800 &members, 801 }; 802 803 FeatureInfo supportsFragmentShadingRate = { 804 "supportsFragmentShadingRate", 805 FeatureCategory::VulkanFeatures, 806 &members, 807 }; 808 809 FeatureInfo supportsFoveatedRendering = { 810 "supportsFoveatedRendering", 811 FeatureCategory::VulkanFeatures, 812 &members, 813 }; 814 815 FeatureInfo generateFragmentShadingRateAttchementWithCpu = { 816 "generateFragmentShadingRateAttchementWithCpu", 817 FeatureCategory::VulkanFeatures, 818 &members, 819 }; 820 821 FeatureInfo supportsFragmentShaderPixelInterlock = { 822 "supportsFragmentShaderPixelInterlock", 823 FeatureCategory::VulkanFeatures, 824 &members, 825 }; 826 827 FeatureInfo explicitlyEnablePerSampleShading = { 828 "explicitlyEnablePerSampleShading", 829 FeatureCategory::VulkanWorkarounds, 830 &members, 831 }; 832 833 FeatureInfo explicitlyCastMediumpFloatTo16Bit = { 834 "explicitlyCastMediumpFloatTo16Bit", 835 FeatureCategory::VulkanWorkarounds, 836 &members, 837 }; 838 839 FeatureInfo forceContinuousRefreshOnSharedPresent = { 840 "forceContinuousRefreshOnSharedPresent", 841 FeatureCategory::VulkanFeatures, 842 &members, 843 }; 844 845 FeatureInfo supportsImage2dViewOf3d = { 846 "supportsImage2dViewOf3d", 847 FeatureCategory::VulkanFeatures, 848 &members, 849 }; 850 851 FeatureInfo supportsSampler2dViewOf3d = { 852 "supportsSampler2dViewOf3d", 853 FeatureCategory::VulkanFeatures, 854 &members, 855 }; 856 857 FeatureInfo supportsImagelessFramebuffer = { 858 "supportsImagelessFramebuffer", 859 FeatureCategory::VulkanFeatures, 860 &members, 861 }; 862 863 FeatureInfo preferLinearFilterForYUV = { 864 "preferLinearFilterForYUV", 865 FeatureCategory::VulkanFeatures, 866 &members, 867 }; 868 869 FeatureInfo supportsYuvTarget = { 870 "supportsYuvTarget", 871 FeatureCategory::VulkanFeatures, 872 &members, 873 }; 874 875 FeatureInfo useNonZeroStencilWriteMaskStaticState = { 876 "useNonZeroStencilWriteMaskStaticState", 877 FeatureCategory::VulkanWorkarounds, 878 &members, 879 }; 880 881 FeatureInfo mapUnspecifiedColorSpaceToPassThrough = { 882 "mapUnspecifiedColorSpaceToPassThrough", 883 FeatureCategory::VulkanFeatures, 884 &members, 885 }; 886 887 FeatureInfo supportsTimestampSurfaceAttribute = { 888 "supportsTimestampSurfaceAttribute", 889 FeatureCategory::VulkanFeatures, 890 &members, 891 }; 892 893 FeatureInfo supportsRasterizationOrderAttachmentAccess = { 894 "supportsRasterizationOrderAttachmentAccess", 895 FeatureCategory::VulkanFeatures, 896 &members, 897 }; 898 899 FeatureInfo eglColorspaceAttributePassthrough = { 900 "eglColorspaceAttributePassthrough", 901 FeatureCategory::VulkanFeatures, 902 &members, 903 }; 904 905 FeatureInfo supportsPipelineRobustness = { 906 "supportsPipelineRobustness", 907 FeatureCategory::VulkanFeatures, 908 &members, 909 }; 910 911 FeatureInfo supportsVertexInputDynamicState = { 912 "supportsVertexInputDynamicState", 913 FeatureCategory::VulkanFeatures, 914 &members, 915 }; 916 917 FeatureInfo supportsColorWriteEnable = { 918 "supportsColorWriteEnable", 919 FeatureCategory::VulkanFeatures, 920 &members, 921 }; 922 923 FeatureInfo supportsPresentation = { 924 "supportsPresentation", 925 FeatureCategory::VulkanFeatures, 926 &members, 927 }; 928 929 FeatureInfo supportsComputeTranscodeEtcToBc = { 930 "supportsComputeTranscodeEtcToBc", 931 FeatureCategory::VulkanFeatures, 932 &members, 933 }; 934 935 FeatureInfo supportsGraphicsPipelineLibrary = { 936 "supportsGraphicsPipelineLibrary", 937 FeatureCategory::VulkanFeatures, 938 &members, 939 }; 940 941 FeatureInfo preferMonolithicPipelinesOverLibraries = { 942 "preferMonolithicPipelinesOverLibraries", 943 FeatureCategory::VulkanWorkarounds, 944 &members, 945 }; 946 947 FeatureInfo slowDownMonolithicPipelineCreationForTesting = { 948 "slowDownMonolithicPipelineCreationForTesting", 949 FeatureCategory::VulkanWorkarounds, 950 &members, 951 }; 952 953 FeatureInfo disablePipelineCacheLoadForTesting = { 954 "disablePipelineCacheLoadForTesting", 955 FeatureCategory::VulkanWorkarounds, 956 &members, 957 }; 958 959 FeatureInfo syncMonolithicPipelinesToBlobCache = { 960 "syncMonolithicPipelinesToBlobCache", 961 FeatureCategory::VulkanWorkarounds, 962 &members, 963 }; 964 965 FeatureInfo mergeProgramPipelineCachesToGlobalCache = { 966 "mergeProgramPipelineCachesToGlobalCache", 967 FeatureCategory::VulkanWorkarounds, 968 &members, 969 }; 970 971 FeatureInfo hasEffectivePipelineCacheSerialization = { 972 "hasEffectivePipelineCacheSerialization", 973 FeatureCategory::VulkanFeatures, 974 &members, 975 }; 976 977 FeatureInfo enableAsyncPipelineCacheCompression = { 978 "enableAsyncPipelineCacheCompression", 979 FeatureCategory::VulkanWorkarounds, 980 &members, 981 }; 982 983 FeatureInfo supportsPipelineProtectedAccess = { 984 "supportsPipelineProtectedAccess", 985 FeatureCategory::VulkanFeatures, 986 &members, 987 }; 988 989 FeatureInfo supportsMixedReadWriteDepthStencilLayouts = { 990 "supportsMixedReadWriteDepthStencilLayouts", 991 FeatureCategory::VulkanFeatures, 992 &members, 993 }; 994 995 FeatureInfo supportsMaintenance5 = { 996 "supportsMaintenance5", 997 FeatureCategory::VulkanFeatures, 998 &members, 999 }; 1000 1001 FeatureInfo supportsSurfaceMaintenance1 = { 1002 "supportsSurfaceMaintenance1", 1003 FeatureCategory::VulkanFeatures, 1004 &members, 1005 }; 1006 1007 FeatureInfo supportsSwapchainMaintenance1 = { 1008 "supportsSwapchainMaintenance1", 1009 FeatureCategory::VulkanFeatures, 1010 &members, 1011 }; 1012 1013 FeatureInfo supportsGetMemoryRequirements2 = { 1014 "supportsGetMemoryRequirements2", 1015 FeatureCategory::VulkanFeatures, 1016 &members, 1017 }; 1018 1019 FeatureInfo supportsBindMemory2 = { 1020 "supportsBindMemory2", 1021 FeatureCategory::VulkanFeatures, 1022 &members, 1023 }; 1024 1025 FeatureInfo supportsSamplerMirrorClampToEdge = { 1026 "supportsSamplerMirrorClampToEdge", 1027 FeatureCategory::VulkanFeatures, 1028 &members, 1029 }; 1030 1031 FeatureInfo preferSubmitOnAnySamplesPassedQueryEnd = { 1032 "preferSubmitOnAnySamplesPassedQueryEnd", 1033 FeatureCategory::VulkanWorkarounds, 1034 &members, 1035 }; 1036 1037 FeatureInfo forceWaitForSubmissionToCompleteForQueryResult = { 1038 "forceWaitForSubmissionToCompleteForQueryResult", 1039 FeatureCategory::VulkanWorkarounds, 1040 &members, 1041 }; 1042 1043 FeatureInfo asyncCommandBufferResetAndGarbageCleanup = { 1044 "asyncCommandBufferResetAndGarbageCleanup", 1045 FeatureCategory::VulkanFeatures, 1046 &members, 1047 }; 1048 1049 FeatureInfo useResetCommandBufferBitForSecondaryPools = { 1050 "useResetCommandBufferBitForSecondaryPools", 1051 FeatureCategory::VulkanWorkarounds, 1052 &members, 1053 }; 1054 1055 FeatureInfo enablePipelineCacheDataCompression = { 1056 "enablePipelineCacheDataCompression", 1057 FeatureCategory::VulkanFeatures, 1058 &members, 1059 }; 1060 1061 FeatureInfo supportsLegacyDithering = { 1062 "supportsLegacyDithering", 1063 FeatureCategory::VulkanFeatures, 1064 &members, 1065 }; 1066 1067 FeatureInfo limitSampleCountTo2 = { 1068 "limitSampleCountTo2", 1069 FeatureCategory::VulkanWorkarounds, 1070 &members, 1071 }; 1072 1073 FeatureInfo supportsFullScreenExclusive = { 1074 "supportsFullScreenExclusive", 1075 FeatureCategory::VulkanFeatures, 1076 &members, 1077 }; 1078 1079 FeatureInfo forceDisableFullScreenExclusive = { 1080 "forceDisableFullScreenExclusive", 1081 FeatureCategory::VulkanWorkarounds, 1082 &members, 1083 }; 1084 1085 FeatureInfo supportsPortabilityEnumeration = { 1086 "supportsPortabilityEnumeration", 1087 FeatureCategory::VulkanFeatures, 1088 &members, 1089 }; 1090 1091 FeatureInfo enablePortabilityEnumeration = { 1092 "enablePortabilityEnumeration", 1093 FeatureCategory::VulkanWorkarounds, 1094 &members, 1095 }; 1096 1097 FeatureInfo supportsTimelineSemaphore = { 1098 "supportsTimelineSemaphore", 1099 FeatureCategory::VulkanFeatures, 1100 &members, 1101 }; 1102 1103 FeatureInfo supportsFormatFeatureFlags2 = { 1104 "supportsFormatFeatureFlags2", 1105 FeatureCategory::VulkanFeatures, 1106 &members, 1107 }; 1108 1109 FeatureInfo supportsHostImageCopy = { 1110 "supportsHostImageCopy", 1111 FeatureCategory::VulkanFeatures, 1112 &members, 1113 }; 1114 1115 FeatureInfo allowHostImageCopyDespiteNonIdenticalLayout = { 1116 "allowHostImageCopyDespiteNonIdenticalLayout", 1117 FeatureCategory::VulkanFeatures, 1118 &members, 1119 }; 1120 1121 FeatureInfo enableParallelCompileAndLink = { 1122 "enableParallelCompileAndLink", 1123 FeatureCategory::VulkanFeatures, 1124 &members, 1125 }; 1126 1127 FeatureInfo preferHostCachedForNonStaticBufferUsage = { 1128 "preferHostCachedForNonStaticBufferUsage", 1129 FeatureCategory::VulkanFeatures, 1130 &members, 1131 }; 1132 1133 FeatureInfo supportsExternalFormatResolve = { 1134 "supportsExternalFormatResolve", 1135 FeatureCategory::VulkanFeatures, 1136 &members, 1137 }; 1138 1139 FeatureInfo disableSeparateShaderObjects = { 1140 "disableSeparateShaderObjects", 1141 FeatureCategory::VulkanAppWorkarounds, 1142 &members, 1143 }; 1144 1145 FeatureInfo forceSampleUsageForAhbBackedImages = { 1146 "forceSampleUsageForAhbBackedImages", 1147 FeatureCategory::VulkanAppWorkarounds, 1148 &members, 1149 }; 1150 1151 FeatureInfo avoidOpSelectWithMismatchingRelaxedPrecision = { 1152 "avoidOpSelectWithMismatchingRelaxedPrecision", 1153 FeatureCategory::VulkanWorkarounds, 1154 &members, 1155 }; 1156 1157 FeatureInfo wrapSwitchInIfTrue = { 1158 "wrapSwitchInIfTrue", 1159 FeatureCategory::VulkanWorkarounds, 1160 &members, 1161 }; 1162 1163 FeatureInfo disableDepthStencilResolveThroughAttachment = { 1164 "disableDepthStencilResolveThroughAttachment", 1165 FeatureCategory::VulkanWorkarounds, 1166 &members, 1167 }; 1168 1169 FeatureInfo limitMaxStorageBufferSize = { 1170 "limitMaxStorageBufferSize", 1171 FeatureCategory::VulkanWorkarounds, 1172 &members, 1173 }; 1174 1175 FeatureInfo clDumpVkSpirv = { 1176 "clDumpVkSpirv", 1177 FeatureCategory::VulkanFeatures, 1178 &members, 1179 }; 1180 1181 FeatureInfo enableAdditionalBlendFactorsForDithering = { 1182 "enableAdditionalBlendFactorsForDithering", 1183 FeatureCategory::VulkanAppWorkarounds, 1184 &members, 1185 }; 1186 1187 FeatureInfo enableMergeClientAttribBuffer = { 1188 "enableMergeClientAttribBuffer", 1189 FeatureCategory::VulkanFeatures, 1190 &members, 1191 }; 1192 1193 FeatureInfo supportsShaderNonSemanticInfo = { 1194 "supportsShaderNonSemanticInfo", 1195 FeatureCategory::VulkanFeatures, 1196 &members, 1197 }; 1198 1199 FeatureInfo supports8BitStorageBuffer = { 1200 "supports8BitStorageBuffer", 1201 FeatureCategory::VulkanFeatures, 1202 &members, 1203 }; 1204 1205 FeatureInfo supports8BitUniformAndStorageBuffer = { 1206 "supports8BitUniformAndStorageBuffer", 1207 FeatureCategory::VulkanFeatures, 1208 &members, 1209 }; 1210 1211 FeatureInfo supports8BitPushConstant = { 1212 "supports8BitPushConstant", 1213 FeatureCategory::VulkanFeatures, 1214 &members, 1215 }; 1216 1217 FeatureInfo supports16BitStorageBuffer = { 1218 "supports16BitStorageBuffer", 1219 FeatureCategory::VulkanFeatures, 1220 &members, 1221 }; 1222 1223 FeatureInfo supports16BitUniformAndStorageBuffer = { 1224 "supports16BitUniformAndStorageBuffer", 1225 FeatureCategory::VulkanFeatures, 1226 &members, 1227 }; 1228 1229 FeatureInfo supports16BitPushConstant = { 1230 "supports16BitPushConstant", 1231 FeatureCategory::VulkanFeatures, 1232 &members, 1233 }; 1234 1235 FeatureInfo supports16BitInputOutput = { 1236 "supports16BitInputOutput", 1237 FeatureCategory::VulkanFeatures, 1238 &members, 1239 }; 1240 1241 FeatureInfo useVkEventForImageBarrier = { 1242 "useVkEventForImageBarrier", 1243 FeatureCategory::VulkanFeatures, 1244 &members, 1245 }; 1246 1247 FeatureInfo supportsSynchronization2 = { 1248 "supportsSynchronization2", 1249 FeatureCategory::VulkanFeatures, 1250 &members, 1251 }; 1252 1253 FeatureInfo supportsDynamicRendering = { 1254 "supportsDynamicRendering", 1255 FeatureCategory::VulkanFeatures, 1256 &members, 1257 }; 1258 1259 FeatureInfo supportsDynamicRenderingLocalRead = { 1260 "supportsDynamicRenderingLocalRead", 1261 FeatureCategory::VulkanFeatures, 1262 &members, 1263 }; 1264 1265 FeatureInfo preferDynamicRendering = { 1266 "preferDynamicRendering", 1267 FeatureCategory::VulkanFeatures, 1268 &members, 1269 }; 1270 1271 FeatureInfo preferCachedNoncoherentForDynamicStreamBufferUsage = { 1272 "preferCachedNoncoherentForDynamicStreamBufferUsage", 1273 FeatureCategory::VulkanFeatures, 1274 &members, 1275 }; 1276 1277 FeatureInfo supportsRoundingModeRteFp16 = { 1278 "supportsRoundingModeRteFp16", 1279 FeatureCategory::VulkanFeatures, 1280 &members, 1281 }; 1282 1283 FeatureInfo supportsRoundingModeRteFp32 = { 1284 "supportsRoundingModeRteFp32", 1285 FeatureCategory::VulkanFeatures, 1286 &members, 1287 }; 1288 1289 FeatureInfo supportsRoundingModeRteFp64 = { 1290 "supportsRoundingModeRteFp64", 1291 FeatureCategory::VulkanFeatures, 1292 &members, 1293 }; 1294 1295 FeatureInfo supportsRoundingModeRtzFp16 = { 1296 "supportsRoundingModeRtzFp16", 1297 FeatureCategory::VulkanFeatures, 1298 &members, 1299 }; 1300 1301 FeatureInfo supportsRoundingModeRtzFp32 = { 1302 "supportsRoundingModeRtzFp32", 1303 FeatureCategory::VulkanFeatures, 1304 &members, 1305 }; 1306 1307 FeatureInfo supportsRoundingModeRtzFp64 = { 1308 "supportsRoundingModeRtzFp64", 1309 FeatureCategory::VulkanFeatures, 1310 &members, 1311 }; 1312 1313 FeatureInfo supportsDenormPreserveFp16 = { 1314 "supportsDenormPreserveFp16", 1315 FeatureCategory::VulkanFeatures, 1316 &members, 1317 }; 1318 1319 FeatureInfo supportsDenormPreserveFp32 = { 1320 "supportsDenormPreserveFp32", 1321 FeatureCategory::VulkanFeatures, 1322 &members, 1323 }; 1324 1325 FeatureInfo supportsDenormPreserveFp64 = { 1326 "supportsDenormPreserveFp64", 1327 FeatureCategory::VulkanFeatures, 1328 &members, 1329 }; 1330 1331 FeatureInfo supportsDenormFtzFp16 = { 1332 "supportsDenormFtzFp16", 1333 FeatureCategory::VulkanFeatures, 1334 &members, 1335 }; 1336 1337 FeatureInfo supportsDenormFtzFp32 = { 1338 "supportsDenormFtzFp32", 1339 FeatureCategory::VulkanFeatures, 1340 &members, 1341 }; 1342 1343 FeatureInfo supportsDenormFtzFp64 = { 1344 "supportsDenormFtzFp64", 1345 FeatureCategory::VulkanFeatures, 1346 &members, 1347 }; 1348 1349 FeatureInfo supportsSignedZeroInfNanPreserveFp16 = { 1350 "supportsSignedZeroInfNanPreserveFp16", 1351 FeatureCategory::VulkanFeatures, 1352 &members, 1353 }; 1354 1355 FeatureInfo supportsSignedZeroInfNanPreserveFp32 = { 1356 "supportsSignedZeroInfNanPreserveFp32", 1357 FeatureCategory::VulkanFeatures, 1358 &members, 1359 }; 1360 1361 FeatureInfo supportsSignedZeroInfNanPreserveFp64 = { 1362 "supportsSignedZeroInfNanPreserveFp64", 1363 FeatureCategory::VulkanFeatures, 1364 &members, 1365 }; 1366 1367 FeatureInfo preferDoubleBufferSwapchainOnFifoMode = { 1368 "preferDoubleBufferSwapchainOnFifoMode", 1369 FeatureCategory::VulkanFeatures, 1370 &members, 1371 }; 1372 1373 FeatureInfo useDualPipelineBlobCacheSlots = { 1374 "useDualPipelineBlobCacheSlots", 1375 FeatureCategory::VulkanFeatures, 1376 &members, 1377 }; 1378 1379 FeatureInfo useEmptyBlobsToEraseOldPipelineCacheFromBlobCache = { 1380 "useEmptyBlobsToEraseOldPipelineCacheFromBlobCache", 1381 FeatureCategory::VulkanFeatures, 1382 &members, 1383 }; 1384 1385 FeatureInfo hasBlobCacheThatEvictsOldItemsFirst = { 1386 "hasBlobCacheThatEvictsOldItemsFirst", 1387 FeatureCategory::VulkanFeatures, 1388 &members, 1389 }; 1390 1391 FeatureInfo verifyPipelineCacheInBlobCache = { 1392 "verifyPipelineCacheInBlobCache", 1393 FeatureCategory::VulkanFeatures, 1394 &members, 1395 }; 1396 1397 FeatureInfo descriptorSetCache = { 1398 "descriptorSetCache", 1399 FeatureCategory::VulkanFeatures, 1400 &members, 1401 }; 1402 1403 FeatureInfo supportsImageCompressionControl = { 1404 "supportsImageCompressionControl", 1405 FeatureCategory::VulkanFeatures, 1406 &members, 1407 }; 1408 1409 FeatureInfo supportsAstcSliced3d = { 1410 "supportsAstcSliced3d", 1411 FeatureCategory::VulkanFeatures, 1412 &members, 1413 }; 1414 1415 FeatureInfo supportsTextureCompressionAstcHdr = { 1416 "supportsTextureCompressionAstcHdr", 1417 FeatureCategory::VulkanFeatures, 1418 &members, 1419 }; 1420 1421 }; 1422 1423 inline FeaturesVk::FeaturesVk() = default; 1424 inline FeaturesVk::~FeaturesVk() = default; 1425 1426 } // namespace angle 1427 1428 #endif // ANGLE_PLATFORM_AUTOGEN_FEATURESVK_H_ 1429