| // 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.cpp: List of ANGLE features to help enable/disable them in tests. |
| |
| #include "angle_features_autogen.h" |
| |
| #include "common/PackedEnums.h" |
| |
| namespace angle |
| { |
| namespace |
| { |
| constexpr PackedEnumMap<Feature, const char *> kFeatureNames = {{ |
| {Feature::AddAndTrueToLoopCondition, "add_and_true_to_loop_condition"}, |
| {Feature::AddBaseVertexToVertexID, "vertex_id_does_not_include_base_vertex"}, |
| {Feature::AddMockTextureNoRenderTarget, "add_mock_texture_no_render_target"}, |
| {Feature::AdjustSrcDstRegionBlitFramebuffer, "adjust_src_dst_region_for_blitframebuffer"}, |
| {Feature::AllocateNonZeroMemory, "allocateNonZeroMemory"}, |
| {Feature::AllowBufferReadWrite, "allow_buffer_read_write"}, |
| {Feature::AllowClearForRobustResourceInit, "allow_clear_for_robust_resource_init"}, |
| {Feature::AllowCompressedFormats, "allow_compressed_formats"}, |
| {Feature::AllowES3OnFL10_0, "allowES3OnFL10_0"}, |
| {Feature::AllowEtcFormats, "allow_etc_formats"}, |
| {Feature::AllowGenMultipleMipsPerPass, "gen_multiple_mips_per_pass"}, |
| {Feature::AllowGenerateMipmapWithCompute, "allowGenerateMipmapWithCompute"}, |
| {Feature::AllowInlineConstVertexData, "allow_inline_const_vertex_data"}, |
| {Feature::AllowMultisampleStoreAndResolve, "allow_msaa_store_and_resolve"}, |
| {Feature::AllowRuntimeSamplerCompareMode, "allow_runtime_sampler_compare_mode"}, |
| {Feature::AllowSamplerCompareGradient, "allow_sampler_compare_gradient"}, |
| {Feature::AllowSamplerCompareLod, "allow_sampler_compare_lod"}, |
| {Feature::AllowSeparatedDepthStencilBuffers, "allow_separate_depth_stencil_buffers"}, |
| {Feature::AllowTranslateUniformBlockToStructuredBuffer, |
| "allow_translate_uniform_block_to_structured_buffer"}, |
| {Feature::AlwaysCallUseProgramAfterLink, "always_call_use_program_after_link"}, |
| {Feature::AlwaysUnbindFramebufferTexture2D, "always_unbind_framebuffer_texture_2d"}, |
| {Feature::AsyncCommandQueue, "asyncCommandQueue"}, |
| {Feature::Avoid1BitAlphaTextureFormats, "avoid_1_bit_alpha_texture_formats"}, |
| {Feature::BasicGLLineRasterization, "basicGLLineRasterization"}, |
| {Feature::BindEmptyForUnusedDescriptorSets, "bindEmptyForUnusedDescriptorSets"}, |
| {Feature::BindTransformFeedbackBufferBeforeBindBufferRange, |
| "bind_transform_feedback_buffer_before_bind_buffer_range"}, |
| {Feature::BottomLeftOriginPresentRegionRectangles, "bottomLeftOriginPresentRegionRectangles"}, |
| {Feature::BresenhamLineRasterization, "bresenhamLineRasterization"}, |
| {Feature::CallClearTwice, "call_clear_twice"}, |
| {Feature::CaptureLimits, "enable_capture_limits"}, |
| {Feature::ClampArrayAccess, "clamp_array_access"}, |
| {Feature::ClampFragDepth, "clamp_frag_depth"}, |
| {Feature::ClampMscRate, "clamp_msc_rate"}, |
| {Feature::ClampPointSize, "clamp_point_size"}, |
| {Feature::ClearToZeroOrOneBroken, "clear_to_zero_or_one_broken"}, |
| {Feature::ClipSrcRegionBlitFramebuffer, "clip_src_region_for_blitframebuffer"}, |
| {Feature::CompressVertexData, "compress_vertex_data"}, |
| {Feature::CreatePipelineDuringLink, "createPipelineDuringLink"}, |
| {Feature::DeferFlushUntilEndRenderPass, "deferFlushUntilEndRenderPass"}, |
| {Feature::DepthClamping, "depth_clamping"}, |
| {Feature::DepthStencilBlitExtraCopy, "depth_stencil_blit_extra_copy"}, |
| {Feature::DirectMetalGeneration, "directMetalGeneration"}, |
| {Feature::DisableAnisotropicFiltering, "disable_anisotropic_filtering"}, |
| {Feature::DisableB5G6R5Support, "disable_b5g6r5_support"}, |
| {Feature::DisableBlendFuncExtended, "disable_blend_func_extended"}, |
| {Feature::DisableDrawBuffersIndexed, "disable_draw_buffers_indexed"}, |
| {Feature::DisableFifoPresentMode, "disableFifoPresentMode"}, |
| {Feature::DisableFlippingBlitWithCommand, "disableFlippingBlitWithCommand"}, |
| {Feature::DisableGPUSwitchingSupport, "disable_gpu_switching_support"}, |
| {Feature::DisableMultisampledRenderToTexture, "disable_mutlisampled_render_to_texture"}, |
| {Feature::DisableNativeParallelCompile, "disable_native_parallel_compile"}, |
| {Feature::DisableProgramBinary, "disable_program_binary"}, |
| {Feature::DisableProgramCachingForTransformFeedback, |
| "disable_program_caching_for_transform_feedback"}, |
| {Feature::DisableSemaphoreFd, "disable_semaphore_fd"}, |
| {Feature::DisableSyncControlSupport, "disable_sync_control_support"}, |
| {Feature::DisableTimestampQueries, "disable_timestamp_queries"}, |
| {Feature::DisableWorkerContexts, "disable_worker_contexts"}, |
| {Feature::DisallowSeamfulCubeMapEmulation, "disallowSeamfulCubeMapEmulation"}, |
| {Feature::DoWhileGLSLCausesGPUHang, "do_while_glsl_causes_gpu_hang"}, |
| {Feature::DoesSRGBClearsOnLinearFramebufferAttachments, |
| "does_srgb_clears_on_linear_framebuffer_attachments"}, |
| {Feature::DontInitializeUninitializedLocals, "dont_initialize_uninitialized_locals"}, |
| {Feature::DontRelinkProgramsInParallel, "dont_relink_programs_in_parallel"}, |
| {Feature::DontUseLoopsToInitializeVariables, "dont_use_loops_to_initialize_variables"}, |
| {Feature::EmulateAbsIntFunction, "emulate_abs_int_function"}, |
| {Feature::EmulateAtan2Float, "emulate_atan_2_float"}, |
| {Feature::EmulateCopyTexImage2DFromRenderbuffers, "emulate_copyteximage2d_from_renderbuffers"}, |
| {Feature::EmulateDithering, "emulateDithering"}, |
| {Feature::EmulateImmutableCompressedTexture3D, "emulate_immutable_compressed_texture_3d"}, |
| {Feature::EmulateIsnanFloat, "emulate_isnan_float"}, |
| {Feature::EmulateMaxVertexAttribStride, "emulate_max_vertex_attrib_stride"}, |
| {Feature::EmulatePackSkipRowsAndPackSkipPixels, "emulate_pack_skip_rows_and_pack_skip_pixels"}, |
| {Feature::EmulatePrimitiveRestartFixedIndex, "emulate_primitive_restart_fixed_index"}, |
| {Feature::EmulateR32fImageAtomicExchange, "emulateR32fImageAtomicExchange"}, |
| {Feature::EmulateRGB10, "emulate_rgb10"}, |
| {Feature::EmulateTinyStencilTextures, "emulate_tiny_stencil_textures"}, |
| {Feature::EmulateTransformFeedback, "emulateTransformFeedback"}, |
| {Feature::EmulatedPrerotation180, "emulatedPrerotation180"}, |
| {Feature::EmulatedPrerotation270, "emulatedPrerotation270"}, |
| {Feature::EmulatedPrerotation90, "emulatedPrerotation90"}, |
| {Feature::EnableCompressingPipelineCacheInThreadPool, |
| "enableCompressingPipelineCacheInThreadPool"}, |
| {Feature::EnableMultisampledRenderToTexture, "enableMultisampledRenderToTexture"}, |
| {Feature::EnablePreRotateSurfaces, "enablePreRotateSurfaces"}, |
| {Feature::EnablePrecisionQualifiers, "enablePrecisionQualifiers"}, |
| {Feature::EnableProgramBinaryForCapture, "enableProgramBinaryForCapture"}, |
| {Feature::EncodeAndDecodeSRGBForGenerateMipmap, "decode_encode_srgb_for_generatemipmap"}, |
| {Feature::ExpandIntegerPowExpressions, "expand_integer_pow_expressions"}, |
| {Feature::ExposeNonConformantExtensionsAndVersions, "exposeNonConformantExtensionsAndVersions"}, |
| {Feature::FinishDoesNotCauseQueriesToBeAvailable, |
| "finish_does_not_cause_queries_to_be_available"}, |
| {Feature::FlushAfterEndingTransformFeedback, "flush_after_ending_transform_feedback"}, |
| {Feature::FlushBeforeDeleteTextureIfCopiedTo, "flush_before_delete_texture_if_copied_to"}, |
| {Feature::FlushOnFramebufferChange, "flush_on_framebuffer_change"}, |
| {Feature::ForceAtomicValueResolution, "force_atomic_value_resolution"}, |
| {Feature::ForceBufferGPUStorage, "force_buffer_gpu_storage"}, |
| {Feature::ForceD16TexFilter, "forceD16TexFilter"}, |
| {Feature::ForceD24S8AsUnsupported, "force_d24s8_as_unsupported"}, |
| {Feature::ForceDriverUniformOverSpecConst, "forceDriverUniformOverSpecConst"}, |
| {Feature::ForceFallbackFormat, "forceFallbackFormat"}, |
| {Feature::ForceFragmentShaderPrecisionHighpToMediump, |
| "forceFragmentShaderPrecisionHighpToMediump"}, |
| {Feature::ForceInitShaderVariables, "forceInitShaderVariables"}, |
| {Feature::ForceMaxUniformBufferSize16KB, "forceMaxUniformBufferSize16KB"}, |
| {Feature::ForceNearestFiltering, "force_nearest_filtering"}, |
| {Feature::ForceNearestMipFiltering, "forceNearestMipFiltering"}, |
| {Feature::ForceNonCSBaseMipmapGeneration, "force_non_cs_mipmap_gen"}, |
| {Feature::ForceRobustResourceInit, "forceRobustResourceInit"}, |
| {Feature::ForceSubmitImmutableTextureUpdates, "forceSubmitImmutableTextureUpdates"}, |
| {Feature::ForceTextureLodOffset1, "force_texture_lod_offset_1"}, |
| {Feature::ForceTextureLodOffset2, "force_texture_lod_offset_2"}, |
| {Feature::ForceTextureLodOffset3, "force_texture_lod_offset_3"}, |
| {Feature::ForceTextureLodOffset4, "force_texture_lod_offset_4"}, |
| {Feature::GenerateSPIRVThroughGlslang, "generateSPIRVThroughGlslang"}, |
| {Feature::GetDimensionsIgnoresBaseLevel, "get_dimensions_ignores_base_level"}, |
| {Feature::HasBaseVertexInstancedDraw, "has_base_vertex_instanced_draw"}, |
| {Feature::HasCheapRenderPass, "has_cheap_render_pass_mtl"}, |
| {Feature::HasDepthAutoResolve, "has_msaa_depth_auto_resolve"}, |
| {Feature::HasEvents, "has_mtl_events"}, |
| {Feature::HasExplicitMemBarrier, "has_explicit_mem_barrier_mtl"}, |
| {Feature::HasNonUniformDispatch, "has_non_uniform_dispatch"}, |
| {Feature::HasStencilAutoResolve, "has_msaa_stencil_auto_resolve"}, |
| {Feature::HasStencilOutput, "has_shader_stencil_output"}, |
| {Feature::HasTextureSwizzle, "has_texture_swizzle"}, |
| {Feature::InitFragmentOutputVariables, "init_fragment_output_variables"}, |
| {Feature::InitializeCurrentVertexAttributes, "initialize_current_vertex_attributes"}, |
| {Feature::IntelDisableFastMath, "intel_disable_fast_math"}, |
| {Feature::IntelExplicitBoolCastWorkaround, "intel_explicit_bool_cast_workaround"}, |
| {Feature::KeepBufferShadowCopy, "keep_buffer_shadow_copy"}, |
| {Feature::LimitMax3dArrayTextureSizeTo1024, "max_3d_array_texture_size_1024"}, |
| {Feature::LimitMaxMSAASamplesTo4, "max_msaa_sample_count_4"}, |
| {Feature::LimitMaxTextureSizeTo4096, "max_texture_size_limit_4096"}, |
| {Feature::LogMemoryReportCallbacks, "logMemoryReportCallbacks"}, |
| {Feature::LogMemoryReportStats, "logMemoryReportStats"}, |
| {Feature::LoseContextOnOutOfMemory, "lose_context_on_out_of_memory"}, |
| {Feature::MrtPerfWorkaround, "mrt_perf_workaround"}, |
| {Feature::MultisampleColorFormatShaderReadWorkaround, |
| "multisample_color_format_shader_read_workaround"}, |
| {Feature::OverrideSurfaceFormatRGB8toRGBA8, "overrideSurfaceFormatRGB8toRGBA8"}, |
| {Feature::PackLastRowSeparatelyForPaddingInclusion, |
| "pack_last_row_separately_for_padding_inclusion"}, |
| {Feature::PackOverlappingRowsSeparatelyPackBuffer, |
| "pack_overlapping_rows_separately_pack_buffer"}, |
| {Feature::PadBuffersToMaxVertexAttribStride, "padBuffersToMaxVertexAttribStride"}, |
| {Feature::PerFrameWindowSizeQuery, "perFrameWindowSizeQuery"}, |
| {Feature::PersistentlyMappedBuffers, "persistentlyMappedBuffers"}, |
| {Feature::PreAddTexelFetchOffsets, "pre_add_texel_fetch_offsets"}, |
| {Feature::PreferAggregateBarrierCalls, "preferAggregateBarrierCalls"}, |
| {Feature::PreferCPUForBufferSubData, "preferCPUForBufferSubData"}, |
| {Feature::PreferDrawClearOverVkCmdClearAttachments, "preferDrawClearOverVkCmdClearAttachments"}, |
| {Feature::PreferSkippingInvalidateForEmulatedFormats, |
| "preferSkippingInvalidateForEmulatedFormats"}, |
| {Feature::PreferSubmitAtFBOBoundary, "preferSubmitAtFBOBoundary"}, |
| {Feature::PromotePackedFormatsTo8BitPerChannel, "promote_packed_formats_to_8_bit_per_channel"}, |
| {Feature::ProvokingVertex, "provokingVertex"}, |
| {Feature::QueryCounterBitsGeneratesErrors, "query_counter_bits_generates_errors"}, |
| {Feature::ReadPixelsUsingImplementationColorReadFormatForNorm16, |
| "read_pixels_using_implementation_color_read_format"}, |
| {Feature::ReapplyUBOBindingsAfterUsingBinaryProgram, |
| "reapply_ubo_bindings_after_using_binary_program"}, |
| {Feature::RegenerateStructNames, "regenerate_struct_names"}, |
| {Feature::RemoveDynamicIndexingOfSwizzledVector, "remove_dynamic_indexing_of_swizzled_vector"}, |
| {Feature::RemoveInvariantAndCentroidForESSL3, "remove_invarient_and_centroid_for_essl3"}, |
| {Feature::ResetTexImage2DBaseLevel, "reset_teximage2d_base_level"}, |
| {Feature::RetainSpirvDebugInfo, "retainSpirvDebugInfo"}, |
| {Feature::RewriteFloatUnaryMinusOperator, "rewrite_float_unary_minus_operator"}, |
| {Feature::RewriteRepeatedAssignToSwizzled, "rewrite_repeated_assign_to_swizzled"}, |
| {Feature::RewriteRowMajorMatrices, "rewrite_row_major_matrices"}, |
| {Feature::RewriteUnaryMinusOperator, "rewrite_unary_minus_operator"}, |
| {Feature::RgbDXT1TexturesSampleZeroAlpha, "rgb_dxt1_textures_sample_zero_alpha"}, |
| {Feature::Rgba4IsNotSupportedForColorRendering, "rgba4_is_not_supported_for_color_rendering"}, |
| {Feature::SanitizeAmdGpuRendererString, "sanitize_amdgpu_renderer_string"}, |
| {Feature::ScalarizeVecAndMatConstructorArgs, "scalarize_vec_and_mat_constructor_args"}, |
| {Feature::SelectViewInGeometryShader, "select_view_in_geometry_shader"}, |
| {Feature::SetDataFasterThanImageUpload, "set_data_faster_than_image_upload"}, |
| {Feature::SetPrimitiveRestartFixedIndexForDrawArrays, |
| "set_primitive_restart_fixed_index_for_draw_arrays"}, |
| {Feature::SetZeroLevelBeforeGenerateMipmap, "set_zero_level_before_generating_mipmap"}, |
| {Feature::ShadowBuffers, "shadowBuffers"}, |
| {Feature::ShiftInstancedArrayDataWithExtraOffset, "shift_instanced_array_data_with_offset"}, |
| {Feature::SkipVSConstantRegisterZero, "skip_vs_constant_register_zero"}, |
| {Feature::SupportsAndroidHardwareBuffer, "supportsAndroidHardwareBuffer"}, |
| {Feature::SupportsAndroidNativeFenceSync, "supportsAndroidNativeFenceSync"}, |
| {Feature::SupportsBlendOperationAdvanced, "supportsBlendOperationAdvanced"}, |
| {Feature::SupportsCustomBorderColor, "supportsCustomBorderColor"}, |
| {Feature::SupportsDepthClipControl, "supportsDepthClipControl"}, |
| {Feature::SupportsDepthStencilResolve, "supportsDepthStencilResolve"}, |
| {Feature::SupportsExternalFenceCapabilities, "supportsExternalFenceCapabilities"}, |
| {Feature::SupportsExternalFenceFd, "supportsExternalFenceFd"}, |
| {Feature::SupportsExternalMemoryDmaBufAndModifiers, "supportsExternalMemoryDmaBufAndModifiers"}, |
| {Feature::SupportsExternalMemoryFd, "supportsExternalMemoryFd"}, |
| {Feature::SupportsExternalMemoryFuchsia, "supportsExternalMemoryFuchsia"}, |
| {Feature::SupportsExternalMemoryHost, "supportsExternalMemoryHost"}, |
| {Feature::SupportsExternalSemaphoreCapabilities, "supportsExternalSemaphoreCapabilities"}, |
| {Feature::SupportsExternalSemaphoreFd, "supportsExternalSemaphoreFd"}, |
| {Feature::SupportsExternalSemaphoreFuchsia, "supportsExternalSemaphoreFuchsia"}, |
| {Feature::SupportsFilteringPrecision, "supportsFilteringPrecision"}, |
| {Feature::SupportsGGPFrameToken, "supportsGGPFrameToken"}, |
| {Feature::SupportsGeometryStreamsCapability, "supportsGeometryStreamsCapability"}, |
| {Feature::SupportsHostQueryReset, "supportsHostQueryReset"}, |
| {Feature::SupportsImageCubeArray, "supportsImageCubeArray"}, |
| {Feature::SupportsImageFormatList, "supportsImageFormatList"}, |
| {Feature::SupportsIncrementalPresent, "supportsIncrementalPresent"}, |
| {Feature::SupportsIndexTypeUint8, "supportsIndexTypeUint8"}, |
| {Feature::SupportsLockSurfaceExtension, "supportsLockSurfaceExtension"}, |
| {Feature::SupportsMultiDrawIndirect, "supportsMultiDrawIndirect"}, |
| {Feature::SupportsMultisampledRenderToSingleSampled, |
| "supportsMultisampledRenderToSingleSampled"}, |
| {Feature::SupportsMultiview, "supportsMultiview"}, |
| {Feature::SupportsNegativeViewport, "supportsNegativeViewport"}, |
| {Feature::SupportsPipelineStatisticsQuery, "supportsPipelineStatisticsQuery"}, |
| {Feature::SupportsProtectedMemory, "supportsProtectedMemory"}, |
| {Feature::SupportsRenderPassLoadStoreOpNone, "supportsRenderPassLoadStoreOpNone"}, |
| {Feature::SupportsRenderPassStoreOpNoneQCOM, "supportsRenderPassStoreOpNoneQCOM"}, |
| {Feature::SupportsRenderpass2, "supportsRenderpass2"}, |
| {Feature::SupportsShaderFloat16, "supportsShaderFloat16"}, |
| {Feature::SupportsShaderFramebufferFetch, "supportsShaderFramebufferFetch"}, |
| {Feature::SupportsShaderFramebufferFetchNonCoherent, |
| "supportsShaderFramebufferFetchNonCoherent"}, |
| {Feature::SupportsShaderStencilExport, "supportsShaderStencilExport"}, |
| {Feature::SupportsSharedPresentableImageExtension, "supportsSharedPresentableImageExtension"}, |
| {Feature::SupportsSurfaceCapabilities2Extension, "supportsSurfaceCapabilities2Extension"}, |
| {Feature::SupportsSurfaceProtectedCapabilitiesExtension, |
| "supportsSurfaceProtectedCapabilitiesExtension"}, |
| {Feature::SupportsSurfaceProtectedSwapchains, "supportsSurfaceProtectedSwapchains"}, |
| {Feature::SupportsSurfacelessQueryExtension, "supportsSurfacelessQueryExtension"}, |
| {Feature::SupportsTransformFeedbackExtension, "supportsTransformFeedbackExtension"}, |
| {Feature::SupportsYUVSamplerConversion, "supportsYUVSamplerConversion"}, |
| {Feature::SwapbuffersOnFlushOrFinishWithSingleBuffer, |
| "swapbuffersOnFlushOrFinishWithSingleBuffer"}, |
| {Feature::SyncVertexArraysToDefault, "sync_vertex_arrays_to_default"}, |
| {Feature::UnbindFBOOnContextSwitch, "unbind_fbo_before_switching_context"}, |
| {Feature::UnfoldShortCircuits, "unfold_short_circuits"}, |
| {Feature::UnpackLastRowSeparatelyForPaddingInclusion, |
| "unpack_last_row_separately_for_padding_inclusion"}, |
| {Feature::UnpackOverlappingRowsSeparatelyUnpackBuffer, |
| "unpack_overlapping_rows_separately_unpack_buffer"}, |
| {Feature::UnsizedsRGBReadPixelsDoesntTransform, "unsized_srgb_read_pixels_doesnt_transform"}, |
| {Feature::UploadTextureDataInChunks, "chunked_texture_upload"}, |
| {Feature::UseInstancedPointSpriteEmulation, "use_instanced_point_sprite_emulation"}, |
| {Feature::UseMultipleDescriptorsForExternalFormats, "useMultipleDescriptorsForExternalFormats"}, |
| {Feature::UseSystemMemoryForConstantBuffers, "use_system_memory_for_constant_buffers"}, |
| {Feature::UseUnusedBlocksWithStandardOrSharedLayout, |
| "use_unused_blocks_with_standard_or_shared_layout"}, |
| {Feature::WaitIdleBeforeSwapchainRecreation, "waitIdleBeforeSwapchainRecreation"}, |
| {Feature::ZeroMaxLodWorkaround, "zero_max_lod"}, |
| }}; |
| } // anonymous namespace |
| |
| const char *GetFeatureName(Feature feature) |
| { |
| return kFeatureNames[feature]; |
| } |
| |
| } // namespace angle |