1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_features.py using data from *_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 // angle_features_autogen.cpp: List of ANGLE features to help enable/disable them in tests.
9
10 #include "angle_features_autogen.h"
11
12 #include "common/PackedEnums.h"
13
14 namespace angle
15 {
16 namespace
17 {
18 constexpr PackedEnumMap<Feature, const char *> kFeatureNames = {{
19 {Feature::AddAndTrueToLoopCondition, "addAndTrueToLoopCondition"},
20 {Feature::AddMockTextureNoRenderTarget, "addMockTextureNoRenderTarget"},
21 {Feature::AdjustSrcDstRegionForBlitFramebuffer, "adjustSrcDstRegionForBlitFramebuffer"},
22 {Feature::AllocateNonZeroMemory, "allocateNonZeroMemory"},
23 {Feature::AllowBufferReadWrite, "allowBufferReadWrite"},
24 {Feature::AllowClearForRobustResourceInit, "allowClearForRobustResourceInit"},
25 {Feature::AllowCompressedFormats, "allowCompressedFormats"},
26 {Feature::AllowES3OnFL100, "allowES3OnFL100"},
27 {Feature::AllowETCFormats, "allowETCFormats"},
28 {Feature::AllowGenerateMipmapWithCompute, "allowGenerateMipmapWithCompute"},
29 {Feature::AllowGenMultipleMipsPerPass, "allowGenMultipleMipsPerPass"},
30 {Feature::AllowInlineConstVertexData, "allowInlineConstVertexData"},
31 {Feature::AllowMultisampleStoreAndResolve, "allowMultisampleStoreAndResolve"},
32 {Feature::AllowRuntimeSamplerCompareMode, "allowRuntimeSamplerCompareMode"},
33 {Feature::AllowSamplerCompareGradient, "allowSamplerCompareGradient"},
34 {Feature::AllowSamplerCompareLod, "allowSamplerCompareLod"},
35 {Feature::AllowSeparateDepthStencilBuffers, "allowSeparateDepthStencilBuffers"},
36 {Feature::AllowTranslateUniformBlockToStructuredBuffer,
37 "allowTranslateUniformBlockToStructuredBuffer"},
38 {Feature::AlwaysCallUseProgramAfterLink, "alwaysCallUseProgramAfterLink"},
39 {Feature::AlwaysUnbindFramebufferTexture2D, "alwaysUnbindFramebufferTexture2D"},
40 {Feature::AsyncCommandQueue, "asyncCommandQueue"},
41 {Feature::Avoid1BitAlphaTextureFormats, "avoid1BitAlphaTextureFormats"},
42 {Feature::BasicGLLineRasterization, "basicGLLineRasterization"},
43 {Feature::BindEmptyForUnusedDescriptorSets, "bindEmptyForUnusedDescriptorSets"},
44 {Feature::BindTransformFeedbackBufferBeforeBindBufferRange,
45 "bindTransformFeedbackBufferBeforeBindBufferRange"},
46 {Feature::BottomLeftOriginPresentRegionRectangles, "bottomLeftOriginPresentRegionRectangles"},
47 {Feature::BresenhamLineRasterization, "bresenhamLineRasterization"},
48 {Feature::CallClearTwice, "callClearTwice"},
49 {Feature::ClampArrayAccess, "clampArrayAccess"},
50 {Feature::ClampFragDepth, "clampFragDepth"},
51 {Feature::ClampMscRate, "clampMscRate"},
52 {Feature::ClampPointSize, "clampPointSize"},
53 {Feature::ClearToZeroOrOneBroken, "clearToZeroOrOneBroken"},
54 {Feature::ClipSrcRegionForBlitFramebuffer, "clipSrcRegionForBlitFramebuffer"},
55 {Feature::CompressVertexData, "compressVertexData"},
56 {Feature::CopyIOSurfaceToNonIOSurfaceForReadOptimization,
57 "copyIOSurfaceToNonIOSurfaceForReadOptimization"},
58 {Feature::CreatePipelineDuringLink, "createPipelineDuringLink"},
59 {Feature::DecodeEncodeSRGBForGenerateMipmap, "decodeEncodeSRGBForGenerateMipmap"},
60 {Feature::DeferFlushUntilEndRenderPass, "deferFlushUntilEndRenderPass"},
61 {Feature::DepthClamping, "depthClamping"},
62 {Feature::DepthStencilBlitExtraCopy, "depthStencilBlitExtraCopy"},
63 {Feature::DirectMetalGeneration, "directMetalGeneration"},
64 {Feature::DisableAnisotropicFiltering, "disableAnisotropicFiltering"},
65 {Feature::DisableB5G6R5Support, "disableB5G6R5Support"},
66 {Feature::DisableBlendFuncExtended, "disableBlendFuncExtended"},
67 {Feature::DisableDrawBuffersIndexed, "disableDrawBuffersIndexed"},
68 {Feature::DisableFifoPresentMode, "disableFifoPresentMode"},
69 {Feature::DisableFlippingBlitWithCommand, "disableFlippingBlitWithCommand"},
70 {Feature::DisableGPUSwitchingSupport, "disableGPUSwitchingSupport"},
71 {Feature::DisableMultisampledRenderToTexture, "disableMultisampledRenderToTexture"},
72 {Feature::DisableNativeParallelCompile, "disableNativeParallelCompile"},
73 {Feature::DisableProgramBinary, "disableProgramBinary"},
74 {Feature::DisableProgramCachingForTransformFeedback,
75 "disableProgramCachingForTransformFeedback"},
76 {Feature::DisableSemaphoreFd, "disableSemaphoreFd"},
77 {Feature::DisableSyncControlSupport, "disableSyncControlSupport"},
78 {Feature::DisableTimestampQueries, "disableTimestampQueries"},
79 {Feature::DisableWorkerContexts, "disableWorkerContexts"},
80 {Feature::DisallowSeamfulCubeMapEmulation, "disallowSeamfulCubeMapEmulation"},
81 {Feature::DoesSRGBClearsOnLinearFramebufferAttachments,
82 "doesSRGBClearsOnLinearFramebufferAttachments"},
83 {Feature::DontInitializeUninitializedLocals, "dontInitializeUninitializedLocals"},
84 {Feature::DontRelinkProgramsInParallel, "dontRelinkProgramsInParallel"},
85 {Feature::DontUseLoopsToInitializeVariables, "dontUseLoopsToInitializeVariables"},
86 {Feature::DoWhileGLSLCausesGPUHang, "doWhileGLSLCausesGPUHang"},
87 {Feature::EmulateAbsIntFunction, "emulateAbsIntFunction"},
88 {Feature::EmulateAdvancedBlendEquations, "emulateAdvancedBlendEquations"},
89 {Feature::EmulateAtan2Float, "emulateAtan2Float"},
90 {Feature::EmulateCopyTexImage2DFromRenderbuffers, "emulateCopyTexImage2DFromRenderbuffers"},
91 {Feature::EmulateDithering, "emulateDithering"},
92 {Feature::EmulatedPrerotation180, "emulatedPrerotation180"},
93 {Feature::EmulatedPrerotation270, "emulatedPrerotation270"},
94 {Feature::EmulatedPrerotation90, "emulatedPrerotation90"},
95 {Feature::EmulateImmutableCompressedTexture3D, "emulateImmutableCompressedTexture3D"},
96 {Feature::EmulateIsnanFloat, "emulateIsnanFloat"},
97 {Feature::EmulateMaxVertexAttribStride, "emulateMaxVertexAttribStride"},
98 {Feature::EmulatePackSkipRowsAndPackSkipPixels, "emulatePackSkipRowsAndPackSkipPixels"},
99 {Feature::EmulatePrimitiveRestartFixedIndex, "emulatePrimitiveRestartFixedIndex"},
100 {Feature::EmulateR32fImageAtomicExchange, "emulateR32fImageAtomicExchange"},
101 {Feature::EmulateRGB10, "emulateRGB10"},
102 {Feature::EmulateTinyStencilTextures, "emulateTinyStencilTextures"},
103 {Feature::EmulateTransformFeedback, "emulateTransformFeedback"},
104 {Feature::EnableCaptureLimits, "enableCaptureLimits"},
105 {Feature::EnableCompressingPipelineCacheInThreadPool,
106 "enableCompressingPipelineCacheInThreadPool"},
107 {Feature::EnableMultisampledRenderToTexture, "enableMultisampledRenderToTexture"},
108 {Feature::EnablePrecisionQualifiers, "enablePrecisionQualifiers"},
109 {Feature::EnablePreRotateSurfaces, "enablePreRotateSurfaces"},
110 {Feature::EnableProgramBinaryForCapture, "enableProgramBinaryForCapture"},
111 {Feature::ExpandIntegerPowExpressions, "expandIntegerPowExpressions"},
112 {Feature::ExposeNonConformantExtensionsAndVersions, "exposeNonConformantExtensionsAndVersions"},
113 {Feature::FinishDoesNotCauseQueriesToBeAvailable, "finishDoesNotCauseQueriesToBeAvailable"},
114 {Feature::FlushAfterEndingTransformFeedback, "flushAfterEndingTransformFeedback"},
115 {Feature::FlushBeforeDeleteTextureIfCopiedTo, "flushBeforeDeleteTextureIfCopiedTo"},
116 {Feature::FlushOnFramebufferChange, "flushOnFramebufferChange"},
117 {Feature::ForceAtomicValueResolution, "forceAtomicValueResolution"},
118 {Feature::ForceBufferGPUStorage, "forceBufferGPUStorage"},
119 {Feature::ForceD16TexFilter, "forceD16TexFilter"},
120 {Feature::ForceD24S8AsUnsupported, "forceD24S8AsUnsupported"},
121 {Feature::ForceDriverUniformOverSpecConst, "forceDriverUniformOverSpecConst"},
122 {Feature::ForceFallbackFormat, "forceFallbackFormat"},
123 {Feature::ForceFragmentShaderPrecisionHighpToMediump,
124 "forceFragmentShaderPrecisionHighpToMediump"},
125 {Feature::ForceGlErrorChecking, "forceGlErrorChecking"},
126 {Feature::ForceInitShaderVariables, "forceInitShaderVariables"},
127 {Feature::ForceMaxUniformBufferSize16KB, "forceMaxUniformBufferSize16KB"},
128 {Feature::ForceNearestFiltering, "forceNearestFiltering"},
129 {Feature::ForceNearestMipFiltering, "forceNearestMipFiltering"},
130 {Feature::ForceNonCSBaseMipmapGeneration, "forceNonCSBaseMipmapGeneration"},
131 {Feature::ForceRobustResourceInit, "forceRobustResourceInit"},
132 {Feature::ForceSubmitImmutableTextureUpdates, "forceSubmitImmutableTextureUpdates"},
133 {Feature::ForceTextureLodOffset1, "forceTextureLodOffset1"},
134 {Feature::ForceTextureLodOffset2, "forceTextureLodOffset2"},
135 {Feature::ForceTextureLodOffset3, "forceTextureLodOffset3"},
136 {Feature::ForceTextureLodOffset4, "forceTextureLodOffset4"},
137 {Feature::GenerateSPIRVThroughGlslang, "generateSPIRVThroughGlslang"},
138 {Feature::GetDimensionsIgnoresBaseLevel, "getDimensionsIgnoresBaseLevel"},
139 {Feature::HasBaseVertexInstancedDraw, "hasBaseVertexInstancedDraw"},
140 {Feature::HasCheapRenderPass, "hasCheapRenderPass"},
141 {Feature::HasDepthAutoResolve, "hasDepthAutoResolve"},
142 {Feature::HasEvents, "hasEvents"},
143 {Feature::HasExplicitMemBarrier, "hasExplicitMemBarrier"},
144 {Feature::HasNonUniformDispatch, "hasNonUniformDispatch"},
145 {Feature::HasShaderStencilOutput, "hasShaderStencilOutput"},
146 {Feature::HasStencilAutoResolve, "hasStencilAutoResolve"},
147 {Feature::HasTextureSwizzle, "hasTextureSwizzle"},
148 {Feature::InitFragmentOutputVariables, "initFragmentOutputVariables"},
149 {Feature::InitializeCurrentVertexAttributes, "initializeCurrentVertexAttributes"},
150 {Feature::IntelDisableFastMath, "intelDisableFastMath"},
151 {Feature::IntelExplicitBoolCastWorkaround, "intelExplicitBoolCastWorkaround"},
152 {Feature::KeepBufferShadowCopy, "keepBufferShadowCopy"},
153 {Feature::LimitMax3dArrayTextureSizeTo1024, "limitMax3dArrayTextureSizeTo1024"},
154 {Feature::LimitMaxMSAASamplesTo4, "limitMaxMSAASamplesTo4"},
155 {Feature::LimitMaxTextureSizeTo4096, "limitMaxTextureSizeTo4096"},
156 {Feature::LogMemoryReportCallbacks, "logMemoryReportCallbacks"},
157 {Feature::LogMemoryReportStats, "logMemoryReportStats"},
158 {Feature::LoseContextOnOutOfMemory, "loseContextOnOutOfMemory"},
159 {Feature::MrtPerfWorkaround, "mrtPerfWorkaround"},
160 {Feature::MultisampleColorFormatShaderReadWorkaround,
161 "multisampleColorFormatShaderReadWorkaround"},
162 {Feature::OverrideSurfaceFormatRGB8ToRGBA8, "overrideSurfaceFormatRGB8ToRGBA8"},
163 {Feature::PackLastRowSeparatelyForPaddingInclusion, "packLastRowSeparatelyForPaddingInclusion"},
164 {Feature::PackOverlappingRowsSeparatelyPackBuffer, "packOverlappingRowsSeparatelyPackBuffer"},
165 {Feature::PadBuffersToMaxVertexAttribStride, "padBuffersToMaxVertexAttribStride"},
166 {Feature::PerFrameWindowSizeQuery, "perFrameWindowSizeQuery"},
167 {Feature::PersistentlyMappedBuffers, "persistentlyMappedBuffers"},
168 {Feature::PreAddTexelFetchOffsets, "preAddTexelFetchOffsets"},
169 {Feature::PreferAggregateBarrierCalls, "preferAggregateBarrierCalls"},
170 {Feature::PreferCPUForBufferSubData, "preferCPUForBufferSubData"},
171 {Feature::PreferDrawClearOverVkCmdClearAttachments, "preferDrawClearOverVkCmdClearAttachments"},
172 {Feature::PreferSkippingInvalidateForEmulatedFormats,
173 "preferSkippingInvalidateForEmulatedFormats"},
174 {Feature::PreferSubmitAtFBOBoundary, "preferSubmitAtFBOBoundary"},
175 {Feature::PromotePackedFormatsTo8BitPerChannel, "promotePackedFormatsTo8BitPerChannel"},
176 {Feature::ProvokingVertex, "provokingVertex"},
177 {Feature::QueryCounterBitsGeneratesErrors, "queryCounterBitsGeneratesErrors"},
178 {Feature::ReadPixelsUsingImplementationColorReadFormatForNorm16,
179 "readPixelsUsingImplementationColorReadFormatForNorm16"},
180 {Feature::ReapplyUBOBindingsAfterUsingBinaryProgram,
181 "reapplyUBOBindingsAfterUsingBinaryProgram"},
182 {Feature::RegenerateStructNames, "regenerateStructNames"},
183 {Feature::RemoveDynamicIndexingOfSwizzledVector, "removeDynamicIndexingOfSwizzledVector"},
184 {Feature::RemoveInvariantAndCentroidForESSL3, "removeInvariantAndCentroidForESSL3"},
185 {Feature::ResetTexImage2DBaseLevel, "resetTexImage2DBaseLevel"},
186 {Feature::RetainSPIRVDebugInfo, "retainSPIRVDebugInfo"},
187 {Feature::RewriteFloatUnaryMinusOperator, "rewriteFloatUnaryMinusOperator"},
188 {Feature::RewriteRepeatedAssignToSwizzled, "rewriteRepeatedAssignToSwizzled"},
189 {Feature::RewriteRowMajorMatrices, "rewriteRowMajorMatrices"},
190 {Feature::RewriteUnaryMinusOperator, "rewriteUnaryMinusOperator"},
191 {Feature::RGBA4IsNotSupportedForColorRendering, "RGBA4IsNotSupportedForColorRendering"},
192 {Feature::RGBDXT1TexturesSampleZeroAlpha, "RGBDXT1TexturesSampleZeroAlpha"},
193 {Feature::SanitizeAMDGPURendererString, "sanitizeAMDGPURendererString"},
194 {Feature::ScalarizeVecAndMatConstructorArgs, "scalarizeVecAndMatConstructorArgs"},
195 {Feature::SelectViewInGeometryShader, "selectViewInGeometryShader"},
196 {Feature::SetDataFasterThanImageUpload, "setDataFasterThanImageUpload"},
197 {Feature::SetPrimitiveRestartFixedIndexForDrawArrays,
198 "setPrimitiveRestartFixedIndexForDrawArrays"},
199 {Feature::SetZeroLevelBeforeGenerateMipmap, "setZeroLevelBeforeGenerateMipmap"},
200 {Feature::ShadowBuffers, "shadowBuffers"},
201 {Feature::ShiftInstancedArrayDataWithOffset, "shiftInstancedArrayDataWithOffset"},
202 {Feature::SkipVSConstantRegisterZero, "skipVSConstantRegisterZero"},
203 {Feature::SupportsAndroidHardwareBuffer, "supportsAndroidHardwareBuffer"},
204 {Feature::SupportsAndroidNativeFenceSync, "supportsAndroidNativeFenceSync"},
205 {Feature::SupportsBlendOperationAdvanced, "supportsBlendOperationAdvanced"},
206 {Feature::SupportsCustomBorderColor, "supportsCustomBorderColor"},
207 {Feature::SupportsDepthClipControl, "supportsDepthClipControl"},
208 {Feature::SupportsDepthStencilResolve, "supportsDepthStencilResolve"},
209 {Feature::SupportsExternalFenceCapabilities, "supportsExternalFenceCapabilities"},
210 {Feature::SupportsExternalFenceFd, "supportsExternalFenceFd"},
211 {Feature::SupportsExternalMemoryDmaBufAndModifiers, "supportsExternalMemoryDmaBufAndModifiers"},
212 {Feature::SupportsExternalMemoryFd, "supportsExternalMemoryFd"},
213 {Feature::SupportsExternalMemoryFuchsia, "supportsExternalMemoryFuchsia"},
214 {Feature::SupportsExternalMemoryHost, "supportsExternalMemoryHost"},
215 {Feature::SupportsExternalSemaphoreCapabilities, "supportsExternalSemaphoreCapabilities"},
216 {Feature::SupportsExternalSemaphoreFd, "supportsExternalSemaphoreFd"},
217 {Feature::SupportsExternalSemaphoreFuchsia, "supportsExternalSemaphoreFuchsia"},
218 {Feature::SupportsFilteringPrecision, "supportsFilteringPrecision"},
219 {Feature::SupportsGeometryStreamsCapability, "supportsGeometryStreamsCapability"},
220 {Feature::SupportsGGPFrameToken, "supportsGGPFrameToken"},
221 {Feature::SupportsHostQueryReset, "supportsHostQueryReset"},
222 {Feature::SupportsImageCubeArray, "supportsImageCubeArray"},
223 {Feature::SupportsImageFormatList, "supportsImageFormatList"},
224 {Feature::SupportsIncrementalPresent, "supportsIncrementalPresent"},
225 {Feature::SupportsIndexTypeUint8, "supportsIndexTypeUint8"},
226 {Feature::SupportsLockSurfaceExtension, "supportsLockSurfaceExtension"},
227 {Feature::SupportsMultiDrawIndirect, "supportsMultiDrawIndirect"},
228 {Feature::SupportsMultisampledRenderToSingleSampled,
229 "supportsMultisampledRenderToSingleSampled"},
230 {Feature::SupportsMultiview, "supportsMultiview"},
231 {Feature::SupportsNegativeViewport, "supportsNegativeViewport"},
232 {Feature::SupportsPipelineStatisticsQuery, "supportsPipelineStatisticsQuery"},
233 {Feature::SupportsProtectedMemory, "supportsProtectedMemory"},
234 {Feature::SupportsRenderpass2, "supportsRenderpass2"},
235 {Feature::SupportsRenderPassLoadStoreOpNone, "supportsRenderPassLoadStoreOpNone"},
236 {Feature::SupportsRenderPassStoreOpNone, "supportsRenderPassStoreOpNone"},
237 {Feature::SupportsShaderFloat16, "supportsShaderFloat16"},
238 {Feature::SupportsShaderFramebufferFetch, "supportsShaderFramebufferFetch"},
239 {Feature::SupportsShaderFramebufferFetchNonCoherent,
240 "supportsShaderFramebufferFetchNonCoherent"},
241 {Feature::SupportsShaderStencilExport, "supportsShaderStencilExport"},
242 {Feature::SupportsSharedPresentableImageExtension, "supportsSharedPresentableImageExtension"},
243 {Feature::SupportsSurfaceCapabilities2Extension, "supportsSurfaceCapabilities2Extension"},
244 {Feature::SupportsSurfacelessQueryExtension, "supportsSurfacelessQueryExtension"},
245 {Feature::SupportsSurfaceProtectedCapabilitiesExtension,
246 "supportsSurfaceProtectedCapabilitiesExtension"},
247 {Feature::SupportsSurfaceProtectedSwapchains, "supportsSurfaceProtectedSwapchains"},
248 {Feature::SupportsTransformFeedbackExtension, "supportsTransformFeedbackExtension"},
249 {Feature::SupportsYUVSamplerConversion, "supportsYUVSamplerConversion"},
250 {Feature::SwapbuffersOnFlushOrFinishWithSingleBuffer,
251 "swapbuffersOnFlushOrFinishWithSingleBuffer"},
252 {Feature::SyncVertexArraysToDefault, "syncVertexArraysToDefault"},
253 {Feature::UnbindFBOBeforeSwitchingContext, "unbindFBOBeforeSwitchingContext"},
254 {Feature::UnfoldShortCircuits, "unfoldShortCircuits"},
255 {Feature::UnpackLastRowSeparatelyForPaddingInclusion,
256 "unpackLastRowSeparatelyForPaddingInclusion"},
257 {Feature::UnpackOverlappingRowsSeparatelyUnpackBuffer,
258 "unpackOverlappingRowsSeparatelyUnpackBuffer"},
259 {Feature::UnsizedSRGBReadPixelsDoesntTransform, "unsizedSRGBReadPixelsDoesntTransform"},
260 {Feature::UploadTextureDataInChunks, "uploadTextureDataInChunks"},
261 {Feature::UseInstancedPointSpriteEmulation, "useInstancedPointSpriteEmulation"},
262 {Feature::UseMultipleDescriptorsForExternalFormats, "useMultipleDescriptorsForExternalFormats"},
263 {Feature::UseSystemMemoryForConstantBuffers, "useSystemMemoryForConstantBuffers"},
264 {Feature::UseUnusedBlocksWithStandardOrSharedLayout,
265 "useUnusedBlocksWithStandardOrSharedLayout"},
266 {Feature::VertexIDDoesNotIncludeBaseVertex, "vertexIDDoesNotIncludeBaseVertex"},
267 {Feature::WaitIdleBeforeSwapchainRecreation, "waitIdleBeforeSwapchainRecreation"},
268 {Feature::ZeroMaxLodWorkaround, "zeroMaxLodWorkaround"},
269 }};
270 } // anonymous namespace
271
GetFeatureName(Feature feature)272 const char *GetFeatureName(Feature feature)
273 {
274 return kFeatureNames[feature];
275 }
276
277 } // namespace angle
278