// GENERATED FILE - DO NOT EDIT.
// Generated by gen_features.py using data from *_features.json.
//
// Copyright 2022 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// angle_features_autogen.h: List of ANGLE features to help enable/disable them in tests.

#ifndef ANGLE_SRC_TESTS_TEST_UTIL_AUTOGEN_ANGLE_FEATURES_AUTOGEN_H_
#define ANGLE_SRC_TESTS_TEST_UTIL_AUTOGEN_ANGLE_FEATURES_AUTOGEN_H_

#include "../util_export.h"

namespace angle
{
enum class Feature
{
    AddAndTrueToLoopCondition,
    AddFramebufferFetchBarrierOnUseMidRenderPass,
    AddMockTextureNoRenderTarget,
    AdjustClearColorPrecision,
    AdjustSrcDstRegionForBlitFramebuffer,
    AllocateNonZeroMemory,
    AllocateNonZeroTextures,
    AllowAstcFormats,
    AllowBufferReadWrite,
    AllowClearForRobustResourceInit,
    AllowCompressedFormats,
    AllowES3OnFL100,
    AllowETCFormats,
    AllowExtensionDisableAfterNonPpTokens,
    AllowGenerateMipmapWithCompute,
    AllowGenMultipleMipsPerPass,
    AllowHostImageCopyAfterInitialUpload,
    AllowHostImageCopyDespiteNonIdenticalLayout,
    AllowInlineConstVertexData,
    AllowMultisampledRenderToTextureEmulation,
    AllowMultisampleStoreAndResolve,
    AllowPipelineStatisticsForPrimitivesGeneratedQuery,
    AllowRenderpassWithoutAttachment,
    AllowRuntimeSamplerCompareMode,
    AllowSamplerCompareGradient,
    AllowSeparateDepthStencilBuffers,
    AllowTranslateUniformBlockToStructuredBuffer,
    AlwaysCallUseProgramAfterLink,
    AlwaysEnableEmulatedMultidrawExtensions,
    AlwaysPreferStagedTextureUploads,
    AlwaysRunLinkSubJobsThreaded,
    AlwaysUnbindFramebufferTexture2D,
    AlwaysUseManagedStorageModeForBuffers,
    AlwaysUseSharedStorageModeForBuffers,
    AlwaysUseStagedBufferUpdates,
    AppendAliasedMemoryDecorations,
    AsyncCommandBufferReset,
    AsyncGarbageCleanup,
    Avoid1BitAlphaTextureFormats,
    AvoidBindFragDataLocation,
    AvoidComplexExpressionsInStructConstructor,
    AvoidImageGhostOutsideRenderPass,
    AvoidInvisibleWindowSwapchainRecreate,
    AvoidOpSelectWithMismatchingRelaxedPrecision,
    AvoidStencilTextureSwizzle,
    AvoidWaitAny,
    BgraTexImageFormatsBroken,
    BindCompleteFramebufferForTimerQueries,
    BindTransformFeedbackBufferBeforeBindBufferRange,
    BottomLeftOriginPresentRegionRectangles,
    BresenhamLineRasterization,
    CacheCompiledShader,
    CallClearTwice,
    ClampArrayAccess,
    ClampFragDepth,
    ClampMscRate,
    ClampPointSize,
    ClBestUniformFitWGS,
    ClDumpVkSpirv,
    ClearsWithGapsNeedFlush,
    ClipCullDistanceBrokenWithPassthroughShaders,
    ClipSrcRegionForBlitFramebuffer,
    ClSerializedExecution,
    CompileJobIsThreadSafe,
    CompressProgramBinaryBlob,
    ConvertLowpAndMediumpFloatUniformsTo16Bits,
    CopyIOSurfaceToNonIOSurfaceForReadOptimization,
    CopyTextureToBufferForReadOptimization,
    CorruptProgramBinaryForTesting,
    DebugClDumpCommandStream,
    DecodeEncodeSRGBForGenerateMipmap,
    DepthStencilBlitExtraCopy,
    DescriptorSetCache,
    DestroyOldSwapchainInSharedPresentMode,
    DisableAnisotropicFiltering,
    DisableB5G6R5Support,
    DisableBaseInstanceVertex,
    DisableBlendEquationAdvanced,
    DisableClearTexImageForRobustInit,
    DisableClearTexture,
    DisableClipControl,
    DisableDepthStencilResolveThroughAttachment,
    DisableDrawBuffersIndexed,
    DisableGPUSwitchingSupport,
    DisableMetalOnNvidia,
    DisableMSAASampleCount1,
    DisableMultisampledRenderToTexture,
    DisableNativeParallelCompile,
    DisablePassthroughShaders,
    DisablePipelineCacheLoadForTesting,
    DisableProgramBinary,
    DisableProgramCaching,
    DisableProgramCachingForTransformFeedback,
    DisableProgrammableBlending,
    DisableRasterizerOrderViews,
    DisableRasterOrderGroups,
    DisableRenderSnorm,
    DisableRWTextureTier2Support,
    DisableSemaphoreFd,
    DisableSeparateShaderObjects,
    DisableStagedInitializationOfPackedTextureFormats,
    DisableSubmitCommandsOnSyncStatusCheckForTesting,
    DisableSyncControlSupport,
    DisableTextureClampToBorder,
    DisableTextureMirrorClampToEdge,
    DisableTiledRendering,
    DisableTimestampQueries,
    DisallowMixedDepthStencilLoadOpNoneAndLoad,
    DoesSRGBClearsOnLinearFramebufferAttachments,
    DontInitializeUninitializedLocals,
    DontInvalidateIncompleteFBOs,
    DontUseLoopsToInitializeVariables,
    DoubleDepthBiasConstantFactor,
    DropDepthStencilClearOnInvalidate,
    DumpShaderSource,
    DumpTranslatedShaders,
    EglColorspaceAttributePassthrough,
    EmitMaxGlsl400ForTesting,
    EmulateAbsIntFunction,
    EmulateAdvancedBlendEquations,
    EmulateAlphaToCoverage,
    EmulateAtan2Float,
    EmulateClipDistanceState,
    EmulateClipOrigin,
    EmulateCopyTexImage2D,
    EmulateCopyTexImage2DFromRenderbuffers,
    EmulateDithering,
    EmulateDontCareLoadWithRandomClear,
    EmulatedPrerotation180,
    EmulatedPrerotation270,
    EmulatedPrerotation90,
    EmulateImmutableCompressedTexture3D,
    EmulateIsnanFloat,
    EmulateMaxVertexAttribStride,
    EmulatePackSkipRowsAndPackSkipPixels,
    EmulatePixelLocalStorage,
    EmulatePrimitiveRestartFixedIndex,
    EmulateR32fImageAtomicExchange,
    EmulateRGB10,
    EmulateTinyStencilTextures,
    EmulateTransformFeedback,
    EnableAdditionalBlendFactorsForDithering,
    EnableAsyncPipelineCacheCompression,
    EnableCaptureLimits,
    EnableCreateContextBackwardsCompatible,
    EnableExtraSubmitFence,
    EnableInMemoryMtlLibraryCache,
    EnableMergeClientAttribBuffer,
    EnableMultisampledRenderToTexture,
    EnableMultisampledRenderToTextureOnNonTilers,
    EnableParallelCompileAndLink,
    EnableParallelMtlLibraryCompilation,
    EnablePipelineCacheDataCompression,
    EnablePortabilityEnumeration,
    EnablePrecisionQualifiers,
    EnableProgramBinaryForCapture,
    EnableShaderSubstitution,
    EnableTimestampQueries,
    EnableTranslatedShaderSubstitution,
    EnsureLoopForwardProgress,
    EnsureNonEmptyBufferIsBoundForDraw,
    ExpandFragmentOutputsToVec4,
    ExpandIntegerPowExpressions,
    ExplicitFragmentLocations,
    ExplicitlyEnablePerSampleShading,
    ExposeES32ForTesting,
    ExposeNonConformantExtensionsAndVersions,
    ExternallySynchronizePipelineCacheAccess,
    FinishDoesNotCauseQueriesToBeAvailable,
    FlushAfterEndingTransformFeedback,
    FlushAfterStreamVertexData,
    FlushBeforeDeleteTextureIfCopiedTo,
    FlushOnFramebufferChange,
    FlushQueriesBeforeDeletingOrUnbindingFbo,
    ForceAtomicValueResolution,
    ForceBufferGPUStorage,
    ForceContinuousRefreshOnSharedPresent,
    ForceD16TexFilter,
    ForceD24S8AsUnsupported,
    ForceDebugContexts,
    ForceDepthAttachmentInitOnClear,
    ForceDisableFullScreenExclusive,
    ForceFallbackFormat,
    ForceFlushAfterDrawcallUsingShadowmap,
    ForceGlErrorChecking,
    ForceHostImageCopyForLuma,
    ForceInitShaderVariables,
    ForceLumaWorkaroundForSameTextureCopyTexImage2D,
    ForceMaxCombinedShaderOutputResources,
    ForceMaxUniformBufferSize16KB,
    ForceMinimumMaxVertexAttributes,
    ForceNearestFiltering,
    ForceNearestMipFiltering,
    ForceNonCSBaseMipmapGeneration,
    ForcePassthroughShaders,
    ForceRenderableFallbackFormat,
    ForceRobustResourceInit,
    ForceSampleUsageForAhbBackedImages,
    ForceSizePointerForBoundVertexBuffers,
    ForceSubmitExceptionsAtFBOBoundary,
    ForceSubmitImmutableTextureUpdates,
    ForceTextureLodOffset1,
    ForceTextureLodOffset2,
    ForceTextureLodOffset3,
    ForceTextureLodOffset4,
    ForceWaitForSubmissionToCompleteForQueryResult,
    GenerateFragmentShadingRateAttchementWithCpu,
    GenerateShareableShaders,
    GetDimensionsIgnoresBaseLevel,
    HasBaseVertexInstancedDraw,
    HasBlobCacheThatEvictsOldItemsFirst,
    HasCheapRenderPass,
    HasDepthAutoResolve,
    HasEvents,
    HasExplicitMemBarrier,
    HasNonUniformDispatch,
    HasShaderStencilOutput,
    HasStencilAutoResolve,
    HasTextureSwizzle,
    InitFragmentOutputVariables,
    InitializeColorAttachmentWithWhite,
    InitializeCurrentVertexAttributes,
    InjectAsmStatementIntoLoopBodies,
    IsVertexSyncDeferred,
    KeepBufferShadowCopy,
    LimitMax3dArrayTextureSizeTo1024,
    LimitMaxBufferBytesTo1MB,
    LimitMaxBufferSizeTo1gb,
    LimitMaxColorTargetBitsForTesting,
    LimitMaxDrawBuffersForTesting,
    LimitMaxMSAASamplesTo4,
    LimitMaxStorageBufferSize,
    LimitMaxTextureBytesTo1MB,
    LimitOutputVaryingsTo256AtCompileTime,
    LimitSampleCountTo2,
    LimitWebglMaxTextureSizeTo4096,
    LimitWebglMaxTextureSizeTo8192,
    LinkJobIsThreadSafe,
    LogMemoryReportCallbacks,
    LogMemoryReportStats,
    LoseContextOnOutOfMemory,
    MapUnspecifiedColorSpaceToPassThrough,
    MergeProgramPipelineCachesToGlobalCache,
    MrtPerfWorkaround,
    MultisampleColorFormatShaderReadWorkaround,
    MultiviewViaViewportArray,
    MutableMipmapTextureUpload,
    NoperspectiveInterpolationBrokenWithPassthroughShaders,
    OverrideSurfaceFormatRGB8ToRGBA8,
    PackLargeRowLengthSeparatelyPackBuffer,
    PackLastRowSeparatelyForPaddingInclusion,
    PackOverlappingRowsSeparatelyPackBuffer,
    PadBuffersToMaxVertexAttribStride,
    PassHighpToPackUnormSnormBuiltins,
    PermanentlySwitchToFramebufferFetchMode,
    PersistentlyMappedBuffers,
    PreAddTexelFetchOffsets,
    PreemptivelyStartProvokingVertexCommandBuffer,
    PreferAggregateBarrierCalls,
    PreferBGR565ToRGB565,
    PreferCachedNoncoherentForDynamicStreamBufferUsage,
    PreferCpuForBuffersubdata,
    PreferCPUForBufferSubData,
    PreferDeviceLocalMemoryHostVisible,
    PreferDoubleBufferSwapchainOnFifoMode,
    PreferDrawClearOverVkCmdClearAttachments,
    PreferDynamicRendering,
    PreferGlobalPipelineCache,
    PreferGPUForCopyBufferSubData,
    PreferHostCachedForNonStaticBufferUsage,
    PreferLinearFilterForYUV,
    PreferMonolithicPipelinesOverLibraries,
    PreferMSRTSSFlagByDefault,
    PreferSkippingInvalidateForEmulatedFormats,
    PreferSubmitAtFBOBoundary,
    PreferSubmitOnAnySamplesPassedQueryEnd,
    PreTransformTextureCubeGradDerivatives,
    PromotePackedFormatsTo8BitPerChannel,
    ProvokingVertex,
    QueryCounterBitsGeneratesErrors,
    ReadPixelsUsingImplementationColorReadFormatForNorm16,
    ReapplyUBOBindingsAfterUsingBinaryProgram,
    ReattachFboDepthStencilOnReallocation,
    ReattachTextureToFboAfterLayerIncrease,
    RecreateImmutableTextureOnBaseLevelIncrease,
    RecreateMipmapLevelsBeforeGenerate,
    RecycleVkEvent,
    RemoveDynamicIndexingOfSwizzledVector,
    RemoveInvariantAndCentroidForESSL3,
    RequireGpuFamily2,
    RescopeGlobalVariables,
    ResetBaseLevelForASTCSubImage,
    ResetSampleCoverageOnFBOChange,
    ResetTexImage2DBaseLevel,
    ResyncDepthRangeOnClipControl,
    RetainSPIRVDebugInfo,
    RewriteRepeatedAssignToSwizzled,
    RewriteRowMajorMatrices,
    RewriteUnaryMinusOperator,
    RGBA4IsNotSupportedForColorRendering,
    RGBDXT1TexturesSampleZeroAlpha,
    RoundOutputAfterDithering,
    SanitizeAMDGPURendererString,
    ScalarizeVecAndMatConstructorArgs,
    SelectViewInGeometryShader,
    SetDataFasterThanImageUpload,
    SetNeedInitOnInvalidation,
    SetPrimitiveRestartFixedIndexForDrawArrays,
    SetZeroLevelBeforeGenerateMipmap,
    ShiftInstancedArrayDataWithOffset,
    SimulateTileMemoryForTesting,
    SingleThreadedTextureDecompression,
    SkipPipelineCacheSerialization,
    SkipVSConstantRegisterZero,
    SlowDownMonolithicPipelineCreationForTesting,
    SplitLevel0PboFullSubImage2D,
    SrgbBlendingBroken,
    SupportFragmentShadingRateExtExtensions,
    Supports16BitInputOutput,
    Supports16BitPushConstant,
    Supports16BitStorageBuffer,
    Supports16BitUniformAndStorageBuffer,
    Supports8BitPushConstant,
    Supports8BitStorageBuffer,
    Supports8BitUniformAndStorageBuffer,
    SupportsAmdShaderCoreProperties,
    SupportsAndroidHardwareBuffer,
    SupportsAndroidNativeFenceSync,
    SupportsAngleRgbxInternalFormat,
    SupportsAppleClipDistance,
    SupportsAstc3d,
    SupportsAstcDecodeMode,
    SupportsAstcDecodeModeRgb9e5,
    SupportsAstcHdr3dTextures,
    SupportsAstcSliced3d,
    SupportsBindMemory2,
    SupportsBindVertexBuffers2,
    SupportsBlendOperationAdvanced,
    SupportsBlendOperationAdvancedCoherent,
    SupportsBufferDeviceAddress,
    SupportsClipCullDistanceInGSAndTS,
    SupportsClKhrSubgroups,
    SupportsColorWriteEnable,
    SupportsComputeTranscodeEtcToBc,
    SupportsCustomBorderColor,
    SupportsDenormFtzFp16,
    SupportsDenormFtzFp32,
    SupportsDenormFtzFp64,
    SupportsDenormPreserveFp16,
    SupportsDenormPreserveFp32,
    SupportsDenormPreserveFp64,
    SupportsDepthClampZeroOne,
    SupportsDepthClipControl,
    SupportsDepthStencilIndependentResolveNone,
    SupportsDepthStencilResolve,
    SupportsDeviceFault,
    SupportsDynamicRendering,
    SupportsDynamicRenderingLocalRead,
    SupportsExtendedDynamicState,
    SupportsExtendedDynamicState2,
    SupportsExternalFenceCapabilities,
    SupportsExternalFenceFd,
    SupportsExternalFormatResolve,
    SupportsExternalMemoryDmaBuf,
    SupportsExternalMemoryFd,
    SupportsExternalMemoryFuchsia,
    SupportsExternalMemoryHost,
    SupportsExternalSemaphoreCapabilities,
    SupportsExternalSemaphoreFd,
    SupportsExternalSemaphoreFuchsia,
    SupportsFormatFeatureFlags2,
    SupportsFoveatedRendering,
    SupportsFragmentShaderInterlockARB,
    SupportsFragmentShaderInterlockNV,
    SupportsFragmentShaderOrderingINTEL,
    SupportsFragmentShaderPixelInterlock,
    SupportsFragmentShadingRate,
    SupportsFullScreenExclusive,
    SupportsGeometryStreamsCapability,
    SupportsGetMemoryRequirements2,
    SupportsGlobalPriority,
    SupportsGlobalPriorityQuery,
    SupportsGraphicsPipelineLibrary,
    SupportShaderPixelLocalStorageAngle,
    SupportsHostImageCopy,
    SupportsHostQueryReset,
    SupportsImage2dViewOf3d,
    SupportsImageCompressionControl,
    SupportsImageCompressionControlSwapchain,
    SupportsImageCubeArray,
    SupportsImageDrmFormatModifier,
    SupportsImageFormatList,
    SupportsImagelessFramebuffer,
    SupportsIncrementalPresent,
    SupportsIndexTypeUint8,
    SupportsLegacyDithering,
    SupportsLockSurfaceExtension,
    SupportsLogicOpDynamicState,
    SupportsMaintenance5,
    SupportsMaintenance9,
    SupportsMemoryBudget,
    SupportsMultiDrawIndirect,
    SupportsMultisampledRenderToSingleSampled,
    SupportsMultiview,
    SupportsMultiviewMultisampleRenderToTexture,
    SupportsPipelineCreationFeedback,
    SupportsPipelineProtectedAccess,
    SupportsPipelineRobustness,
    SupportsPipelineStatisticsQuery,
    SupportsPortabilityEnumeration,
    SupportsPresentation,
    SupportsPrimitiveFragmentShadingRate,
    SupportsPrimitivesGeneratedQuery,
    SupportsPrimitiveTopologyListRestart,
    SupportsProtectedMemory,
    SupportsRasterizationOrderAttachmentAccess,
    SupportsRenderpass2,
    SupportsRenderPassLoadStoreOpNone,
    SupportsRenderPassStoreOpNone,
    SupportsRoundingModeRteFp16,
    SupportsRoundingModeRteFp32,
    SupportsRoundingModeRteFp64,
    SupportsRoundingModeRtzFp16,
    SupportsRoundingModeRtzFp32,
    SupportsRoundingModeRtzFp64,
    SupportsSampler2dViewOf3d,
    SupportsSamplerMirrorClampToEdge,
    SupportsShaderAtomicInt64,
    SupportsShaderDemoteToHelperInvocation,
    SupportsShaderFloat16,
    SupportsShaderFloat64,
    SupportsShaderFramebufferFetch,
    SupportsShaderFramebufferFetchDepthStencil,
    SupportsShaderFramebufferFetchEXT,
    SupportsShaderFramebufferFetchNonCoherent,
    SupportsShaderFramebufferFetchNonCoherentEXT,
    SupportsShaderInt8,
    SupportsShaderIntegerDotProduct,
    SupportsShaderNonSemanticInfo,
    SupportsShaderStencilExport,
    SupportsSharedPresentableImageExtension,
    SupportsSignedZeroInfNanPreserveFp16,
    SupportsSignedZeroInfNanPreserveFp32,
    SupportsSignedZeroInfNanPreserveFp64,
    SupportsSPIRV14,
    SupportsSurfaceCapabilities2Extension,
    SupportsSurfacelessQueryExtension,
    SupportsSurfaceMaintenance1,
    SupportsSurfaceProtectedCapabilitiesExtension,
    SupportsSurfaceProtectedSwapchains,
    SupportsSwapchainMaintenance1,
    SupportsSwapchainMutableFormat,
    SupportsSynchronization2,
    SupportsTextureCompressionAstcHdr,
    SupportsTileMemoryHeap,
    SupportsTimelineSemaphore,
    SupportsTimestampSurfaceAttribute,
    SupportsTransformFeedbackExtension,
    SupportsUnifiedImageLayouts,
    SupportsUniformBufferStandardLayout,
    SupportsVertexInputDynamicState,
    SupportsYUVSamplerConversion,
    SupportsYuvTarget,
    SwapbuffersOnFlushOrFinishWithSingleBuffer,
    SwapchainDeferredMemoryAllocation,
    SyncAllVertexArraysToDefault,
    SyncDefaultVertexArraysToDefault,
    SyncMonolithicPipelinesToBlobCache,
    SyncPipelineCacheToBlobCacheEveryFrame,
    UnbindFBOBeforeSwitchingContext,
    UncurrentEglSurfaceUponSurfaceDestroy,
    UnfoldShortCircuits,
    UnpackLastRowSeparatelyForPaddingInclusion,
    UnpackOverlappingRowsSeparatelyUnpackBuffer,
    UnsizedSRGBReadPixelsDoesntTransform,
    UploadDataToIosurfacesWithStagingBuffers,
    UploadTextureDataInChunks,
    UseCullModeDynamicState,
    UseDepthBiasEnableDynamicState,
    UseDepthCompareOpDynamicState,
    UseDepthTestEnableDynamicState,
    UseDepthWriteEnableDynamicState,
    UseDualPipelineBlobCacheSlots,
    UseEmptyBlobsToEraseOldPipelineCacheFromBlobCache,
    UseFrontFaceDynamicState,
    UseIntermediateTextureForGenerateMipmap,
    UseIr,
    UseLargeSizeForDynamicBuffers,
    UseMultipleDescriptorsForExternalFormats,
    UseNonZeroStencilWriteMaskStaticState,
    UsePrimitiveRestartEnableDynamicState,
    UsePrimitiveTopologyDynamicState,
    UseRasterizerDiscardEnableDynamicState,
    UseResetCommandBufferBitForSecondaryPools,
    UseShadowBuffersWhenAppropriate,
    UsesNativeBuiltinClKernel,
    UsesSecondComponentForStencilBorderColor,
    UseStencilOpDynamicState,
    UseStencilTestEnableDynamicState,
    UseSystemMemoryForConstantBuffers,
    UseTempForNonZeroBaseLevelGenMipmapUsingCopyImageSubData,
    UseUnusedBlocksWithStandardOrSharedLayout,
    UseVertexInputBindingStrideDynamicState,
    UseVkEventForBufferBarrier,
    UseVkEventForImageBarrier,
    UseVmaForImageSuballocation,
    ValidateMaxPerStageUniformBlocksAtCompileTime,
    VaryingsRequireMatchingPrecisionInSpirv,
    VerifyPipelineCacheInBlobCache,
    VertexIDDoesNotIncludeBaseVertex,
    WarmUpPipelineCacheAtLink,
    WrapSwitchInIfTrue,
    WriteHelperSampleMask,

    InvalidEnum,
    EnumCount = InvalidEnum,
};

ANGLE_UTIL_EXPORT extern const char *GetFeatureName(Feature feature);

}  // namespace angle

#endif  // ANGLE_SRC_TESTS_TEST_UTIL_AUTOGEN_ANGLE_FEATURES_AUTOGEN_H_
