xref: /aosp_15_r20/external/angle/include/platform/autogen/FeaturesVk_autogen.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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