blob: e4f7a129f66dca93d7a5a64ae49fb059afe130ee [file] [log] [blame] [edit]
{
"description": [
"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.",
"",
"vk_features.json: Optional features for the Vulkan renderer."
],
"features": [
{
"name": "append_aliased_memory_decorations",
"category": "Workarounds",
"description": [
"Append aliased memory decoration to ssbo and image in SPIR-V if they are not declared with restrict memory qualifier in GLSL"
],
"issue": "b/266235549"
},
{
"name": "allow_pipeline_statistics_for_primitives_generated_query",
"category": "Workarounds",
"description": [
"On devices where primitivesGeneratedQuery vulkan feature is not available, allows pipelineStatisticsQuery vulkan feature to substitute primitivesGeneratedQuery if it generates the same results as primitivesGeneratedQuery"
],
"issue:": "b/333987915"
},
{
"name": "bresenham_line_rasterization",
"category": "Features",
"description": [
"Enable Bresenham line rasterization via VK_EXT_line_rasterization extension"
]
},
{
"name": "provoking_vertex",
"category": "Features",
"description": [
"Enable provoking vertex mode via VK_EXT_provoking_vertex extension"
]
},
{
"name": "force_fallback_format",
"category": "Workarounds",
"description": [
"Force a fallback format for angle_end2end_tests"
]
},
{
"name": "clamp_point_size",
"category": "Workarounds",
"description": [
"The point size range reported from the API is inconsistent with the actual behavior"
],
"issue": "http://anglebug.com/40644663"
},
{
"name": "supports_depth_clamp_zero_one",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_depth_clamp_zero_one extension"
],
"issue": "http://anglebug.com/40096643"
},
{
"name": "clamp_frag_depth",
"category": "Workarounds",
"description": [
"gl_FragDepth is not clamped when rendering to a floating point depth buffer without VK_EXT_depth_clamp_zero_one"
],
"issue": "http://anglebug.com/40096643"
},
{
"name": "mutable_mipmap_texture_upload",
"category": "Features",
"description": [
"Enable uploading the previously defined mutable mipmap texture."
],
"issue": "https://anglebug.com/42265782"
},
{
"name": "use_vma_for_image_suballocation",
"category": "Features",
"description": [
"Utilize VMA for image memory suballocation."
]
},
{
"name": "supports_memory_budget",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_memory_budget extension."
]
},
{
"name": "supports_renderpass2",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_create_renderpass2 extension"
]
},
{
"name": "supports_incremental_present",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_incremental_present extension"
]
},
{
"name": "supports_android_hardware_buffer",
"category": "Features",
"description": [
"VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension"
]
},
{
"name": "supports_external_memory_fd",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_external_memory_fd extension"
]
},
{
"name": "supports_external_memory_fuchsia",
"category": "Features",
"description": [
"VkDevice supports the VK_FUCHSIA_external_memory extension"
]
},
{
"name": "supports_external_fence_capabilities",
"category": "Features",
"description": [
"VkInstance supports the VK_KHR_external_fence_capabilities extension"
]
},
{
"name": "supports_external_semaphore_capabilities",
"category": "Features",
"description": [
"VkInstance supports the VK_KHR_external_semaphore_capabilities extension"
]
},
{
"name": "supports_external_semaphore_fd",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_external_semaphore_fd extension"
]
},
{
"name": "supports_external_semaphore_fuchsia",
"category": "Features",
"description": [
"VkDevice supports the VK_FUCHSIA_external_semaphore extension"
]
},
{
"name": "supports_external_fence_fd",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_external_fence_fd extension"
],
"issue": "http://anglebug.com/42261226"
},
{
"name": "supports_android_native_fence_sync",
"category": "Features",
"description": [
"VkDevice supports the EGL_ANDROID_native_fence_sync extension"
],
"issue": "http://anglebug.com/42261226"
},
{
"name": "supports_image_cube_array",
"category": "Features",
"description": [
"VkDevice supports the imageCubeArray feature properly"
],
"issue": "http://anglebug.com/42262247"
},
{
"name": "supports_pipeline_statistics_query",
"category": "Features",
"description": [
"VkDevice supports the pipelineStatisticsQuery feature"
],
"issue": "http://anglebug.com/42263969"
},
{
"name": "supports_shader_stencil_export",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_shader_stencil_export extension"
]
},
{
"name": "prefer_global_pipeline_cache",
"category": "Features",
"description": [
"The renderer's pipeline cache will be used instead of the separate caches per program."
],
"issue": "http://anglebug.com/411442610"
},
{
"name": "supports_YUV_sampler_conversion",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_sampler_ycbcr_conversion extension"
]
},
{
"name": "emulate_transform_feedback",
"category": "Features",
"description": [
"Emulate transform feedback as the VK_EXT_transform_feedback is not present."
],
"issue": "http://anglebug.com/42261881"
},
{
"name": "supports_transform_feedback_extension",
"category": "Features",
"description": [
"Transform feedback uses the VK_EXT_transform_feedback extension."
],
"issue": "http://anglebug.com/42261882"
},
{
"name": "supports_geometry_streams_capability",
"category": "Features",
"description": [
"Implementation supports the GeometryStreams SPIR-V capability."
],
"issue": "http://anglebug.com/42261882"
},
{
"name": "supports_index_type_uint8",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_index_type_uint8 extension"
],
"issue": "http://anglebug.com/42263031"
},
{
"name": "supports_custom_border_color",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_custom_border_color extension"
],
"issue": "http://anglebug.com/42262239"
},
{
"name": "uses_second_component_for_stencil_border_color",
"category": "Features",
"description": [
"Implementation utilizes second component of the INT custom border color ",
"for undefined format when sampling from a stencil texture."
],
"issue": "http://issuetracker.google.com/390710636"
},
{
"name": "supports_multi_draw_indirect",
"category": "Features",
"description": [
"VkDevice supports the multiDrawIndirect extension"
],
"issue": "http://anglebug.com/42264951"
},
{
"name": "supports_depth_stencil_resolve",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_depth_stencil_resolve extension"
],
"issue": "http://anglebug.com/40644740"
},
{
"name": "supports_depth_stencil_independent_resolve_none",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_depth_stencil_resolve ",
"extension with the independentResolveNone feature"
],
"issue": "http://anglebug.com/42266019"
},
{
"name": "supports_multisampled_render_to_single_sampled",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_multisampled_render_to_single_sampled extension"
],
"issue": "http://anglebug.com/40644740"
},
{
"name": "prefer_MSRTSS_flag_by_default",
"category": "Features",
"description": [
"Enable MSRTSS for each image initialization if available"
],
"issue": "http://anglebug.com/42267057"
},
{
"name": "supports_device_fault",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_device_fault extension"
],
"issue": "http://issuetracker.google.com/399478440"
},
{
"name": "supports_multiview",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_multiview extension"
],
"issue": "http://anglebug.com/42264577"
},
{
"name": "force_D16_tex_filter",
"category": "Workarounds",
"description": [
"VK_FORMAT_D16_UNORM does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, ",
"which prevents OES_depth_texture from being supported."
],
"issue": "http://anglebug.com/42262115"
},
{
"name": "disable_flipping_blit_with_command",
"category": "Workarounds",
"description": [
"vkCmdBlitImage with flipped coordinates blits incorrectly."
],
"issue": "http://anglebug.com/42262161"
},
{
"name": "avoid_invisible_window_swapchain_recreate",
"category": "Workarounds",
"description": [
"Do not recreate a swapchain when window is invisible even if its size is ",
"changed. This is a workaround for the bug when vkAcquireNextImageKHR constantly ",
"returns VK_ERROR_OUT_OF_DATE if recreate the swapchain while window is invisible."
],
"issue": "http://anglebug.com/397848903"
},
{
"name": "pad_buffers_to_max_vertex_attrib_stride",
"category": "Workarounds",
"description": [
"Vulkan considers vertex attribute accesses to count up to the last multiple of the ",
"stride. This additional access supports AMD's robust buffer access implementation. ",
"AMDVLK in particular will return incorrect values when the vertex access extends into ",
"the range that would be the stride padding and the buffer is too small. ",
"This workaround limits GL_MAX_VERTEX_ATTRIB_STRIDE to a maximum value and ",
"pads up every buffer allocation size to be a multiple of the maximum stride."
],
"issue": "http://anglebug.com/42263049"
},
{
"name": "supports_external_memory_dma_buf",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_external_memory_dma_buf",
"extensions"
]
},
{
"name": "supports_image_drm_format_modifier",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_image_drm_format_modifier",
"extensions"
],
"issue": "http://anglebug.com/42264767"
},
{
"name": "supports_external_memory_host",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_external_memory_host extension"
]
},
{
"name": "allocate_non_zero_memory",
"category": "Features",
"description": [
"Fill new allocations with non-zero values to flush out errors."
],
"issue": "http://anglebug.com/42263010"
},
{
"name": "log_memory_report_callbacks",
"category": "Features",
"description": [
"Log each callback from VK_EXT_device_memory_report"
]
},
{
"name": "log_memory_report_stats",
"category": "Features",
"description": [
"Log stats from VK_EXT_device_memory_report each swap"
]
},
{
"name": "prefer_CPU_for_buffer_sub_data",
"category": "Features",
"description": [
"Prefer use CPU to do bufferSubData instead of staged update."
],
"issue": "http://issuetracker.google.com/200067929"
},
{
"name": "persistently_mapped_buffers",
"category": "Features",
"description": [
"Persistently map buffer memory to reduce map/unmap IOCTL overhead."
],
"issue": "http://anglebug.com/40096464"
},
{
"name": "enable_precision_qualifiers",
"category": "Features",
"description": [
"Enable precision qualifiers in shaders"
],
"issue": "http://anglebug.com/42261756"
},
{
"name": "varyings_require_matching_precision_in_spirv",
"category": "Workarounds",
"description": [
"Add additional SPIR-V instructions to make sure precision ",
"between shader stages match with each other"
],
"issue": "http://anglebug.com/42265957"
},
{
"name": "prefer_aggregate_barrier_calls",
"category": "Workarounds",
"description": [
"Single barrier call is preferred over multiple calls with ",
"fine grained pipeline stage dependency information"
],
"issue": "http://anglebug.com/42263239"
},
{
"name": "prefer_skipping_invalidate_for_emulated_formats",
"category": "Workarounds",
"description": [
"Skipping invalidate is preferred for emulated formats that have extra channels over ",
"re-clearing the image"
],
"issue": "http://anglebug.com/42265353"
},
{
"name": "supports_shader_float16",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_shader_float16_int8 extension ",
"and has the shaderFloat16 feature"
],
"issue": "http://anglebug.com/42263158"
},
{
"name": "supports_shader_int8",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_shader_float16_int8 extension ",
"and has the shaderInt8 feature"
]
},
{
"name": "supports_shader_float64",
"category": "Features",
"description": [
"VkDevice supports the shaderFloat64 bit of VkPhysicalDeviceFeatures"
]
},
{
"name": "allow_GenerateMipmap_with_compute",
"category": "Features",
"description": [
"Use the compute path to generate mipmaps on devices that meet the minimum requirements, ",
"and the performance is better."
],
"issue": "http://anglebug.com/42263158"
},
{
"name": "supports_render_pass_store_op_none",
"category": "Features",
"description": [
"VkDevice supports VK_QCOM_render_pass_store_ops extension."
],
"issue": "http://anglebug.com/42263622"
},
{
"name": "supports_render_pass_load_store_op_none",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_load_store_op_none extension."
],
"issue": "http://anglebug.com/42263911"
},
{
"name": "disallow_mixed_depth_stencil_load_op_none_and_load",
"category": "Workarounds",
"description": [
"Disallow use of LOAD_OP_NONE for only one of the depth or stencil aspects of a ",
"depth/stencil attachment"
],
"issue": "http://anglebug.com/42265841"
},
{
"name": "supports_depth_clip_control",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_depth_clip_control extension."
],
"issue": "http://anglebug.com/42263960"
},
{
"name": "supports_primitive_topology_list_restart",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_primitive_topology_list_restart extension."
],
"issue": "http://anglebug.com/42262476"
},
{
"name": "supports_blend_operation_advanced",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_blend_operation_advanced extension."
],
"issue": "http://anglebug.com/42262249"
},
{
"name": "supports_blend_operation_advanced_coherent",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_blend_operation_advanced_coherent extension."
],
"issue": "http://anglebug.com/42262258"
},
{
"name": "force_max_uniform_buffer_size_16KB",
"category": "Workarounds",
"description": [
"Force max uniform buffer size to 16K on some device due to bug"
],
"issue": "https://issuetracker.google.com/161903006"
},
{
"name": "supports_image_format_list",
"category": "Features",
"description": [
"Enable VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT by default for ICDs ",
"that support VK_KHR_image_format_list"
],
"issue": "http://anglebug.com/40644776"
},
{
"name": "allow_multisampled_render_to_texture_emulation",
"category": "Workarounds",
"description": [
"Allow emulation of EXT_multisampled_render_to_texture"
],
"issue": "http://anglebug.com/42266725"
},
{
"name": "enable_multisampled_render_to_texture",
"category": "Workarounds",
"description": [
"Expose EXT_multisampled_render_to_texture"
],
"issue": "http://anglebug.com/40644747"
},
{
"name": "wait_idle_before_swapchain_recreation",
"category": "Workarounds",
"description": [
"Before passing an oldSwapchain to VkSwapchainCreateInfoKHR, wait for queue to be idle. ",
"Works around a bug on platforms which destroy oldSwapchain in vkCreateSwapchainKHR."
],
"issue": "http://anglebug.com/42263629"
},
{
"name": "destroy_old_swapchain_in_shared_present_mode",
"category": "Workarounds",
"description": [
"Instead of passing an oldSwapchain to VkSwapchainCreateInfoKHR, wait for queue to ",
"be idle and destroy the swapchain immediately. Works around a bug on platforms ",
"which may return VK_ERROR_NATIVE_WINDOW_IN_USE_KHR from vkCreateSwapchainKHR ",
"if use the oldSwapchain pointer."
],
"issue": "http://anglebug.com/42262606"
},
{
"name": "force_texture_lod_offset_1",
"category": "Workarounds",
"description": [
"Increase the minimum texture level-of-detail by 1 when sampling."
]
},
{
"name": "force_texture_lod_offset_2",
"category": "Workarounds",
"description": [
"Increase the minimum texture level-of-detail by 2 when sampling."
]
},
{
"name": "force_texture_lod_offset_3",
"category": "Workarounds",
"description": [
"Increase the minimum texture level-of-detail by 3 when sampling."
]
},
{
"name": "force_texture_lod_offset_4",
"category": "Workarounds",
"description": [
"Increase the minimum texture level-of-detail by 4 when sampling."
]
},
{
"name": "force_nearest_filtering",
"category": "Workarounds",
"description": [
"Force nearest filtering when sampling."
]
},
{
"name": "force_nearest_mip_filtering",
"category": "Workarounds",
"description": [
"Force nearest mip filtering when sampling."
]
},
{
"name": "prefer_draw_clear_over_vkCmdClearAttachments",
"category": "Workarounds",
"description": [
"On some hardware, clear using a draw call instead of vkCmdClearAttachments in the middle ",
"of render pass due to bugs"
],
"issue": "https://issuetracker.google.com/166809097"
},
{
"name": "emulated_prerotation_90",
"category": "Features",
"description": [
"Emulate 90-degree prerotation."
],
"issue": "http://anglebug.com/42263477"
},
{
"name": "emulated_prerotation_180",
"category": "Features",
"description": [
"Emulate 180-degree prerotation."
],
"issue": "http://anglebug.com/42263477"
},
{
"name": "emulated_prerotation_270",
"category": "Features",
"description": [
"Emulate 270-degree prerotation."
],
"issue": "http://anglebug.com/42263477"
},
{
"name": "expose_non_conformant_extensions_and_versions",
"category": "Workarounds",
"description": [
"Expose GLES versions and extensions that are not conformant."
],
"issue": "http://anglebug.com/42263914"
},
{
"name": "expose_ES32_for_testing",
"category": "Workarounds",
"description": [
"Expose GLES 3.2 for testing purposes on platforms that currently do not fully support it."
],
"issue": "http://issuetracker.google.com/376899587"
},
{
"name": "emulate_R32f_image_atomic_exchange",
"category": "Workarounds",
"description": [
"Emulate r32f images with r32ui to support imageAtomicExchange."
],
"issue": "http://anglebug.com/42264071"
},
{
"name": "force_fragment_shader_precision_highp_to_mediump",
"category": "Workarounds",
"description": [
"Forces highp precision in fragment shader to mediump."
],
"issue": "https://issuetracker.google.com/184850002"
},
{
"name": "prefer_submit_at_FBO_boundary",
"category": "Workarounds",
"description": [
"Submit commands to driver at each FBO boundary for performance improvements."
],
"issue": "https://issuetracker.google.com/187425444"
},
{
"name": "force_submit_exceptions_at_FBO_boundary",
"category": "Workarounds",
"description": [
"Some commands force immediate submission at FBO boundary."
],
"issue": "https://issuetracker.google.com/422507974"
},
{
"name": "use_multiple_descriptors_for_external_formats",
"category": "Workarounds",
"description": [
"Return a default descriptor count for external formats."
],
"issue": "http://anglebug.com/42264669"
},
{
"name": "supports_protected_memory",
"category": "Features",
"description": [
"VkDevice supports protected memory"
],
"issue": "http://anglebug.com/42262605"
},
{
"name": "supports_host_query_reset",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_host_query_reset extension"
],
"issue": "http://anglebug.com/42265186"
},
{
"name": "supports_pipeline_creation_feedback",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_pipeline_creation_feedback extension"
],
"issue": "http://anglebug.com/42264422"
},
{
"name": "supports_primitives_generated_query",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_primitives_generated_query extension"
],
"issue": "http://anglebug.com/42263969"
},
{
"name": "supports_surface_capabilities2_extension",
"category": "Features",
"description": [
"VkInstance supports the VK_KHR_get_surface_capabilities2 extension"
]
},
{
"name": "supports_surface_protected_capabilities_extension",
"category": "Features",
"description": [
"VkInstance supports the VK_KHR_surface_protected_capabilities extension"
]
},
{
"name": "supports_surfaceless_query_extension",
"category": "Features",
"description": [
"VkInstance supports the VK_GOOGLE_surfaceless_query extension"
]
},
{
"name": "supports_surface_protected_swapchains",
"category": "Features",
"description": [
"VkSurface supportsProtected for protected swapchains"
]
},
{
"name": "override_surface_format_RGB8_to_RGBA8",
"category": "Workarounds",
"description": [
"Override surface format GL_RGB8 to GL_RGBA8"
],
"issue": "http://anglebug.com/42265147"
},
{
"name": "supports_shared_presentable_image_extension",
"category": "Features",
"description": [
"VkSurface supports the VK_KHR_shared_presentable_images extension"
]
},
{
"name": "supports_shader_framebuffer_fetch",
"category": "Features",
"description": [
"Whether the Vulkan backend supports coherent framebuffer fetch"
]
},
{
"name": "supports_shader_framebuffer_fetch_non_coherent",
"category": "Features",
"description": [
"Whether the Vulkan backend supports non-coherent framebuffer fetch"
]
},
{
"name": "supports_shader_framebuffer_fetch_depth_stencil",
"category": "Features",
"description": [
"Whether the Vulkan backend supports coherent depth/stencil framebuffer fetch"
]
},
{
"name": "permanently_switch_to_framebuffer_fetch_mode",
"category": "Features",
"description": [
"Whether the context should permanently switch to framebuffer fetch mode on first ",
"encounter"
]
},
{
"name": "supports_lock_surface_extension",
"category": "Features",
"description": [
"Surface supports the EGL_KHR_lock_surface3 extension"
]
},
{
"name": "swapbuffers_on_flush_or_finish_with_single_buffer",
"category": "Features",
"description": [
"Bypass deferredFlush with calling swapbuffers on flush or finish when in Shared ",
"Present mode"
],
"issue": "http://anglebug.com/42265370"
},
{
"name": "emulate_dithering",
"category": "Features",
"description": [
"Emulate OpenGL dithering"
],
"issue": "http://anglebug.com/42265248"
},
{
"name": "round_output_after_dithering",
"category": "Workarounds",
"description": [
"Round output after dithering to workaround a driver bug that rounds the output up"
],
"issue": "http://anglebug.com/42265429"
},
{
"name": "adjust_clear_color_precision",
"category": "Workarounds",
"description": [
"Adjust normalized clear color precision based on framebuffer color channel bits count"
],
"issue": "https://issuetracker.google.com/292282210"
},
{
"name": "emulate_advanced_blend_equations",
"category": "Features",
"description": [
"Emulate GL_KHR_blend_equation_advanced"
],
"issue": "http://anglebug.com/42262249"
},
{
"name": "double_depth_bias_constant_factor",
"category": "Workarounds",
"description": [
"Due to a Vulkan spec ambiguity, some drivers interpret depthBiasConstantFactor as half ",
"the expected value"
]
},
{
"name": "bottom_left_origin_present_region_rectangles",
"category": "Workarounds",
"description": [
"On some platforms present region rectangles are expected to have a bottom-left origin, ",
"instead of top-left origin as from spec"
]
},
{
"name": "force_submit_immutable_texture_updates",
"category": "AppWorkarounds",
"description": [
"Force submit updates to immutable textures"
],
"issue": "http://anglebug.com/42265407"
},
{
"name": "supports_SPIRV_1_4",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_spirv_1_4 extension"
],
"issue": "http://anglebug.com/342316794"
},
{
"name": "retain_SPIRV_debug_info",
"category": "Features",
"description": [
"Retain debug info in SPIR-V blob."
],
"issue": "http://anglebug.com/42264443"
},
{
"name": "warm_up_pipeline_cache_at_link",
"category": "Features",
"description": [
"Warm up the Vulkan pipeline cache at link time"
],
"issue": "http://anglebug.com/42264422"
},
{
"name": "prefer_device_local_memory_host_visible",
"category": "Features",
"description": [
"Prefer adding HOST_VISIBLE flag for DEVICE_LOCAL memory when picking memory types"
],
"issue": "http://anglebug.com/42265516"
},
{
"name": "supports_extended_dynamic_state",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_extended_dynamic_state extension"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_vertex_input_binding_stride_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Vertex Input Bininding Stride dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_cull_mode_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Cull Mode dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_front_face_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Front Face dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_depth_test_enable_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Depth Test Enable dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_depth_write_enable_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Depth Write Enable dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_depth_compare_op_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Depth Compare Op dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_stencil_test_enable_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Stencil Test Enable dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_stencil_op_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Stencil Op dynamic state from VK_EXT_extended_dynamic_state"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "supports_extended_dynamic_state2",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_extended_dynamic_state2 extension"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_primitive_restart_enable_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Primitive Restart Enable dynamic state from VK_EXT_extended_dynamic_state2"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_rasterizer_discard_enable_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Rasterizer Discard Enable dynamic state from VK_EXT_extended_dynamic_state2"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "use_depth_bias_enable_dynamic_state",
"category": "Workarounds",
"description": [
"Use the Depth Bias Enable dynamic state from VK_EXT_extended_dynamic_state2"
],
"issue": "http://anglebug.com/42264446"
},
{
"name": "supports_logic_op_dynamic_state",
"category": "Features",
"description": [
"VkDevice supports the logicOp feature of VK_EXT_extended_dynamic_state2 extension"
],
"issue": "http://anglebug.com/42262506"
},
{
"name": "supports_fragment_shading_rate",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_fragment_shading_rate extension"
],
"issue": "http://anglebug.com/42265647"
},
{
"name": "supports_primitive_fragment_shading_rate",
"category": "Features",
"description": [
"VkDevice supports primitiveFragmentShadingRate feature"
],
"issue": "http://anglebug.com/397255625"
},
{
"name": "supports_foveated_rendering",
"category": "Features",
"description": [
"Use VK_KHR_fragment_shading_rate extension to implement QCOM foveated rendering extensions"
],
"issue": "http://anglebug.com/42266906"
},
{
"name": "generate_fragment_shading_rate_attchement_with_cpu",
"category": "Features",
"description": [
"Generate the fragment shading rates on the CPU instead of a compute shader"
],
"issue": "http://anglebug.com/42266906"
},
{
"name": "supports_fragment_shader_pixel_interlock",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_fragment_shader_interlock extension ",
"and has the fragmentShaderPixelInterlock feature"
]
},
{
"name": "explicitly_enable_per_sample_shading",
"category": "Workarounds",
"description": [
"Explicitly enable per-sample shading if the fragment shader contains the ",
"sample qualifier"
],
"issue": "http://anglebug.com/42265369"
},
{
"name": "explicitly_cast_mediump_float_to_16_bit",
"category": "Workarounds",
"description": [
"Explicitly cast mediump floating point values to 16 bit"
],
"issue": "https://issuetracker.google.com/274859104"
},
{
"name": "force_continuous_refresh_on_shared_present",
"category": "Features",
"description": [
"Force to create vulkan swapchain with continuous refresh on shared present"
],
"issue": "https://issuetracker.google.com/229267970"
},
{
"name": "supports_image_2d_view_of_3d",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_image_2d_view_of_3d"
],
"issue": "https://anglebug.com/42265794"
},
{
"name": "supports_sampler_2d_view_of_3d",
"category": "Features",
"description": [
"VkDevice supports the sampler2DViewOf3D feature of VK_EXT_image_2d_view_of_3d"
],
"issue": "https://anglebug.com/42265794"
},
{
"name": "supports_imageless_framebuffer",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_imageless_framebuffer extension"
],
"issue": "http://anglebug.com/42266021"
},
{
"name": "prefer_linear_filter_for_YUV",
"category": "Features",
"description": [
"Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion"
],
"issue": "https://anglebug.com/42265854"
},
{
"name": "supports_yuv_target",
"category": "Features",
"description": [
"VkDevice supports VK_ANDROID_external_format_resolve with nullColorAttachmentWithExternalFormatResolve"
]
},
{
"name": "use_non_zero_stencil_write_mask_static_state",
"category": "Workarounds",
"description": [
"Work around a driver bug where 0 in stencil write mask static state would make the ",
"corresponding dynamic state malfunction in the presence of discard or alpha to coverage"
],
"issue": "http://anglebug.com/42266024"
},
{
"name": "map_unspecified_color_space_to_pass_through",
"category": "Features",
"description": [
"Use VK_COLOR_SPACE_PASS_THROUGH_EXT for EGL_NONE or unspecifed color ",
"spaces"
]
},
{
"name": "supports_timestamp_surface_attribute",
"category": "Features",
"description": [
"Platform supports setting frame timestamp surface attribute"
],
"issue": "https://anglebug.com/42265958"
},
{
"name": "supports_rasterization_order_attachment_access",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_rasterization_order_attachment_access extension"
],
"issue": "https://anglebug.com/42266070"
},
{
"name": "egl_colorspace_attribute_passthrough",
"category": "Features",
"description": [
"Support passthrough of EGL colorspace attribute values"
],
"issue": "https://anglebug.com/42265792"
},
{
"name": "supports_pipeline_robustness",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_pipeline_robustness extension"
],
"issue": "https://anglebug.com/42264383"
},
{
"name": "supports_vertex_input_dynamic_state",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_vertex_input_dynamic_state extension"
],
"issue": "https://anglebug.com/42265637"
},
{
"name": "supports_color_write_enable",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_color_write_enable extension"
],
"issue": "https://anglebug.com/42265636"
},
{
"name": "supports_presentation",
"category": "Features",
"description": [
"VkDisplay supports presentation through a present family queue"
]
},
{
"name": "supports_compute_transcode_etc_to_bc",
"category": "Features",
"description": [
"supports compute shader transcode etc format to bc format"
]
},
{
"name": "supports_graphics_pipeline_library",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_graphics_pipeline_library extension"
],
"issue": "https://anglebug.com/42265839"
},
{
"name": "prefer_monolithic_pipelines_over_libraries",
"category": "Workarounds",
"description": [
"Whether monolithic pipelines perform significantly better than libraries"
],
"issue": "https://anglebug.com/42265839"
},
{
"name": "slow_down_monolithic_pipeline_creation_for_testing",
"category": "Workarounds",
"description": [
"Artificially slow down async monolithic pipeline creation for threading testing"
],
"issue": "https://anglebug.com/42265839"
},
{
"name": "disable_pipeline_cache_load_for_testing",
"category": "Workarounds",
"description": [
"Disable loading the pipeline cache from the blob cache for testing"
],
"issue": "https://anglebug.com/42266842"
},
{
"name": "sync_monolithic_pipelines_to_blob_cache",
"category": "Workarounds",
"description": [
"Whether it's beneficial to store monolithic pipelines in the blob cache when ",
"VK_EXT_graphics_pipeline_library is in use. Otherwise the libraries are stored ",
"only, and monolithic pipelines are recreated on every run"
],
"issue": "https://anglebug.com/42265839"
},
{
"name": "merge_program_pipeline_caches_to_global_cache",
"category": "Workarounds",
"description": [
"Whether it's beneficial to merge the pipeline cache for the shaders subset of the ",
"pipeline into the monolithic pipeline cache. Only useful on platforms where ",
"monolithic pipelines can reuse blobs from partial pipelines"
],
"issue": "https://anglebug.com/42265839"
},
{
"name": "skip_pipeline_cache_serialization",
"category": "Features",
"description": [
"Whether to serialize the Vulkan pipeline cache data. ",
"On some implementations, pipeline cache serialization returns no data",
"or very big data,so there is no benefit to serializing it."
],
"issue": "https://anglebug.com/42265839"
},
{
"name": "enable_async_pipeline_cache_compression",
"category": "Workarounds",
"description": [
"Enable compressing pipeline cache in a thread."
],
"issue": "http://anglebug.com/42263322"
},
{
"name": "enable_extra_submit_fence",
"category": "Workarounds",
"description": [
"Enable using a separate submit fence in the command batches."
],
"issue": "https://issuetracker.google.com/384477641"
},
{
"name": "supports_pipeline_protected_access",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_pipeline_protected_access extension"
],
"issue": "https://anglebug.com/42266183"
},
{
"name": "supports_maintenance5",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_maintenance5 extension"
],
"issue": "https://anglebug.com/42267038"
},
{
"name": "supports_surface_maintenance1",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_surface_maintenance1 extension"
],
"issue": "https://anglebug.com/42266319"
},
{
"name": "supports_swapchain_maintenance1",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_surface_maintenance1 and VK_EXT_swapchain_maintenance1 extensions"
],
"issue": "https://anglebug.com/42266319"
},
{
"name": "supports_get_memory_requirements2",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_get_memory_requirements2 extension"
],
"issue": "https://anglebug.com/40644738"
},
{
"name": "supports_bind_memory2",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_bind_memory2 extension"
],
"issue": "https://anglebug.com/42263540"
},
{
"name": "supports_sampler_mirror_clamp_to_edge",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_sampler_mirror_clamp_to_edge extension"
]
},
{
"name": "prefer_submit_on_any_samples_passed_query_end",
"category": "Workarounds",
"description": [
"Submit commands to driver when last GL_ANY_SAMPLES_PASSED query is made for performance improvements."
],
"issue": "https://issuetracker.google.com/250706693"
},
{
"name": "force_wait_for_submission_to_complete_for_query_result",
"category": "Workarounds",
"description": [
"Force wait for submission to complete before calling getQueryResult(wait)."
],
"issue": "https://issuetracker.google.com/253522366"
},
{
"name": "async_garbage_cleanup",
"category": "Features",
"description": [
"cleanup garbage in async thread."
],
"issue": "https://issuetracker.google.com/255411748"
},
{
"name": "async_command_buffer_reset",
"category": "Features",
"description": [
"Reset command buffer in async thread."
],
"issue": "https://issuetracker.google.com/378718508"
},
{
"name": "use_reset_command_buffer_bit_for_secondary_pools",
"category": "Workarounds",
"description": [
"Use VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT for initializing ",
"SecondaryCommandPools when using VulkanSecondaryCommandBuffer. "
]
},
{
"name": "enable_pipeline_cache_data_compression",
"category": "Features",
"description": [
"enable pipeline cache data compression."
],
"issue": "https://issuetracker.google.com/258207403"
},
{
"name": "supports_legacy_dithering",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_legacy_dithering extension"
],
"issue": "https://issuetracker.google.com/284462263"
},
{
"name": "limit_sample_count_to_2",
"category": "Workarounds",
"description": [
"Limit sample count to 2 to save memory on low end devices."
],
"issue": "http://anglebug.com/42266602"
},
{
"name": "supports_full_screen_exclusive",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_full_screen_exclusive extension"
],
"issue": "http://anglebug.com/42266652"
},
{
"name": "force_disable_full_screen_exclusive",
"category": "Workarounds",
"description": [
"Device needs VK_EXT_full_screen_exclusive explicitly disabled"
],
"issue": "http://anglebug.com/42266652"
},
{
"name": "supports_portability_enumeration",
"category": "Features",
"description": [
"Vulkan supports VK_KHR_portability_enumeration extension"
],
"issue": "http://anglebug.com/42266666"
},
{
"name": "enable_portability_enumeration",
"category": "Workarounds",
"description": [
"Enable use of VK_KHR_portability_enumeration extension"
],
"issue": "http://anglebug.com/42266666"
},
{
"name": "supports_timeline_semaphore",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_timeline_semaphore extension"
]
},
{
"name": "supports_format_feature_flags2",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_format_feature_flags2 extension"
]
},
{
"name": "supports_host_image_copy",
"category": "Features",
"description": [
"VkDevice supports the VK_EXT_host_image_copy extension"
]
},
{
"name": "allow_host_image_copy_despite_non_identical_layout",
"category": "Features",
"description": [
"When using VK_EXT_host_image_copy, allow VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT even if",
"perf query indicates only optimalDeviceAccess, but not identicalMemoryLayout"
]
},
{
"name": "force_host_image_copy_for_luma",
"category": "Features",
"description": [
"When using VK_EXT_host_image_copy, use VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT for images created",
"for luminance/alpha textures"
]
},
{
"name": "enable_parallel_compile_and_link",
"category": "Features",
"description": [
"Expose the GL_KHR_parallel_shader_compile extension"
],
"issue": "http://anglebug.com/41488637"
},
{
"name": "prefer_host_cached_for_non_static_buffer_usage",
"category": "Features",
"description": [
"prefer host cached memory for non static buffer usage"
],
"issue": "https://issuetracker.google.com/288119108"
},
{
"name": "supports_external_format_resolve",
"category": "Features",
"description": [
"VkDevice supports the VK_ANDROID_external_format_resolve extension"
]
},
{
"name": "disable_separate_shader_objects",
"category": "AppWorkarounds",
"description": [
"Disable GL_EXT_separate_shader_objects and cap core ES version to 3.0"
],
"issue": "https://issuetracker.google.com/309028728"
},
{
"name": "force_sample_usage_for_ahb_backed_images",
"category": "AppWorkarounds",
"description": [
"Force enable VK_IMAGE_USAGE_SAMPLED_BIT usage for all AHB images"
],
"issue": "https://issuetracker.google.com/155487768"
},
{
"name": "avoid_OpSelect_with_mismatching_RelaxedPrecision",
"category": "Workarounds",
"description": [
"On some drivers, the OpSelect SPIR-V instruction with arguments with mismatching ",
"RelaxedPrecision decoration causes a crash"
],
"issue": "http://anglebug.com/41493495"
},
{
"name": "wrap_switch_in_if_true",
"category": "Workarounds",
"description": [
"On some drivers, nested switch statements are mishandled which can be worked around ",
"by wrapping them in if(true)"
],
"issue": "http://crbug.com/350528343"
},
{
"name": "disable_depth_stencil_resolve_through_attachment",
"category": "Workarounds",
"description": [
"On some drivers, using a depth/stencil resolve attachment results in errors"
],
"issue": "http://anglebug.com/42267095"
},
{
"name": "limit_max_storage_buffer_size",
"category": "Workarounds",
"description": [
"On some drivers, a storage buffer max size limit is exposed that is incompatible with ",
"older hardware"
],
"issue": "http://anglebug.com/345244067"
},
{
"name": "cl_dump_vk_spirv",
"category": "Features",
"description": [
"Enable SPIR-V dumping at runtime for OpenCL programs compiled with clspv"
]
},
{
"name": "enable_additional_blend_factors_for_dithering",
"category": "AppWorkarounds",
"description": [
"Dithering darkens or brightens pixels depending on coordinates and when repeated ",
"sufficient numbers of times this effect becomes visible to users. Conditionally ",
"enable additional blend factors for dithering"
],
"issue": "https://issuetracker.google.com/328837151"
},
{
"name": "enable_merge_client_attrib_buffer",
"category": "Features",
"description": [
"Enable merge for client attrib buffer if possible"
],
"issue": "https://issuetracker.google.com/328301788"
},
{
"name": "supports_shader_non_semantic_info",
"category": "Features",
"description": [
"Enable non-semantic info inside shader module via VK_KHR_shader_non_semantic_info extension"
],
"issue": "http://anglebug.com/42266976"
},
{
"name": "supports_8_bit_storage_buffer",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_8bit_storage extension and has the storageBuffer8BitAccess feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "supports_8_bit_uniform_and_storage_buffer",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_8bit_storage extension and has the uniformAndStorageBuffer8BitAccess feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "supports_8_bit_push_constant",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_8bit_storage extension and has the storagePushConstant8 feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "supports_16_bit_storage_buffer",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_16bit_storage extension and has the storageBuffer16BitAccess feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "supports_16_bit_uniform_and_storage_buffer",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_16bit_storage extension and has the uniformAndStorageBuffer16BitAccess feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "supports_16_bit_push_constant",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_16bit_storage extension and has the storagePushConstant16 feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "supports_16_bit_input_output",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_16bit_storage extension and has the storageInputOutput16 feature"
],
"issue": "http://anglebug.com/42267113"
},
{
"name": "use_vkEvent_for_image_barrier",
"category": "Features",
"description": [
"Uses VkEvent instead of VkCmdPipelineBarrier for image barriers"
],
"issue": "https://issuetracker.google.com/336844257"
},
{
"name": "use_vkEvent_for_buffer_barrier",
"category": "Features",
"description": [
"Uses VkEvent instead of VkCmdPipelineBarrier for buffer barriers"
],
"issue": "https://issues.angleproject.org/360274928"
},
{
"name": "recycle_vkEvent",
"category": "Features",
"description": [
"Keep and recycle VkEvent instead of destroying when the last reference goes away"
],
"issue": "https://issues.angleproject.org/409441956"
},
{
"name": "supports_synchronization2",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_synchronization2 extension"
],
"issue": "https://issuetracker.google.com/336844257"
},
{
"name": "supports_dynamic_rendering",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_dynamic_rendering extension"
],
"issue": "http://anglebug.com/42267038"
},
{
"name": "supports_dynamic_rendering_local_read",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_dynamic_rendering_local_read extension"
],
"issue": "http://anglebug.com/42267038"
},
{
"name": "prefer_dynamic_rendering",
"category": "Features",
"description": [
"Whether dynamic rendering should be used instead of render pass objects"
],
"issue": "http://anglebug.com/42267038"
},
{
"name": "prefer_cached_noncoherent_for_dynamic_stream_buffer_usage",
"category": "Features",
"description": [
"Prefer host cached + non-coherent memory for buffers with dynamic/stream usage."
],
"issue": "https://issuetracker.google.com/347601787"
},
{
"name": "supports_rounding_mode_rte_fp16",
"category": "Features",
"description": [
"VkDevice supports the RTEFloat16 rounding mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_rounding_mode_rte_fp32",
"category": "Features",
"description": [
"VkDevice supports the RTEFloat32 rounding mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_rounding_mode_rte_fp64",
"category": "Features",
"description": [
"VkDevice supports the RTEFloat64 rounding mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_rounding_mode_rtz_fp16",
"category": "Features",
"description": [
"VkDevice supports the RTZFloat16 rounding mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_rounding_mode_rtz_fp32",
"category": "Features",
"description": [
"VkDevice supports the RTZFloat32 rounding mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_rounding_mode_rtz_fp64",
"category": "Features",
"description": [
"VkDevice supports the RTZFloat64 rounding mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_denorm_preserve_fp16",
"category": "Features",
"description": [
"VkDevice supports the DenormPreserveFloat16 mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_denorm_preserve_fp32",
"category": "Features",
"description": [
"VkDevice supports the DenormPreserveFloat32 mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_denorm_preserve_fp64",
"category": "Features",
"description": [
"VkDevice supports the DenormPreserveFloat64 mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_denorm_ftz_fp16",
"category": "Features",
"description": [
"VkDevice supports the DenormFlushToZeroFloat16 mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_denorm_ftz_fp32",
"category": "Features",
"description": [
"VkDevice supports the DenormFlushToZeroFloat32 mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_denorm_ftz_fp64",
"category": "Features",
"description": [
"VkDevice supports the DenormFlushToZeroFloat64 mode from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_signed_zero_inf_nan_preserve_fp16",
"category": "Features",
"description": [
"VkDevice supports SignedZeroInfNanPreserve execution mode for 16-bit floating point from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_signed_zero_inf_nan_preserve_fp32",
"category": "Features",
"description": [
"VkDevice supports SignedZeroInfNanPreserve execution mode for 32-bit floating point from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "supports_signed_zero_inf_nan_preserve_fp64",
"category": "Features",
"description": [
"VkDevice supports SignedZeroInfNanPreserve execution mode for 64-bit floating point from VK_KHR_shader_float_controls extension"
],
"issue": "https://anglebug.com/360031000"
},
{
"name": "prefer_double_buffer_swapchain_on_fifo_mode",
"category": "Features",
"description": [
"allow create double buffer swapchain for fifo present mode"
],
"issue": "https://issuetracker.google.com/311022968"
},
{
"name": "use_dual_pipeline_blob_cache_slots",
"category": "Features",
"description": [
"Wether to use single or dual slots to store PipelineCacheVk data into the blob cache."
],
"issue": "https://anglebug.com/42263322"
},
{
"name": "use_empty_blobs_to_erase_old_pipeline_cache_from_blob_cache",
"category": "Features",
"description": [
"Whether to use empty blobs or 1-sized blobs to erase old PipelineCacheVk data from the blob cache."
],
"issue": "https://anglebug.com/42263322"
},
{
"name": "has_blob_cache_that_evicts_old_items_first",
"category": "Features",
"description": [
"Whether platform blob cache evicts old items first (has LRU). ",
"This is also true if cache evicts more old items than required when storing a new item."
],
"issue": "https://anglebug.com/42263322"
},
{
"name": "verify_pipeline_cache_in_blob_cache",
"category": "Features",
"description": [
"Whether need to perform verification of stored PipelineCacheVk data chunks or not. ",
"Relevant, when blob cache does not evict old items first (no LRU) or evicts more old items than required when storing a new item."
],
"issue": "https://anglebug.com/42263322"
},
{
"name": "descriptor_set_cache",
"category": "Features",
"description": [
"Whether cache the individual descriptorSet or not."
],
"issue": "https://anglebug.com/372268711"
},
{
"name": "supports_image_compression_control",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_image_compression_control"
],
"issue": "https://anglebug.com/352364583"
},
{
"name": "supports_astc_sliced_3d",
"category": "Features",
"description": [
"Enable use of sliced_3d"
],
"issue": "https://anglebug.com/378507964"
},
{
"name": "supports_texture_compression_astc_hdr",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_texture_compression_astc_hdr extension"
],
"issue": "https://anglebug.com/379186304"
},
{
"name": "supports_astc_decode_mode",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_astc_decode_mode extension"
],
"issue": "https://anglebug.com/419403188"
},
{
"name": "supports_astc_decode_mode_rgb9e5",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_astc_decode_mode extension"
],
"issue": "https://anglebug.com/419403188"
},
{
"name": "supports_astc_hdr_3d_textures",
"category": "Features",
"description": [
"Whether the device supports 3D textures with ASTC HDR compression"
],
"issue": "https://anglebug.com/416095435"
},
{
"name": "supports_image_compression_control_swapchain",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_image_compression_control_swapchain"
],
"issue": "https://anglebug.com/375496226"
},
{
"name": "supports_angle_rgbx_internal_format",
"category": "Features",
"description": [
"Enable support for ANGLE_rgbx_internal_format extension"
],
"issue": "https://anglebug.com/386749841"
},
{
"name": "supports_apple_clip_distance",
"category": "Features",
"description": [
"Enable support for GL_APPLE_clip_distance extension"
],
"issue": "https://anglebug.com/386749841"
},
{
"name": "supports_uniform_buffer_standard_layout",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_uniform_buffer_standard_layout and has UniformBufferStandardLayout feature"
]
},
{
"name": "uses_native_builtin_cl_kernel",
"category": "Features",
"description": [
"Enable the use of native builtin kernel in place of the libclc version"
]
},
{
"name": "supports_swapchain_mutable_format",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_swapchain_mutable_format extension"
],
"issue": "http://anglebug.com/386688871"
},
{
"name": "supports_clip_cull_distance_in_GS_and_TS",
"category": "Features",
"description": [
"Supports using clip/cull distance features in geometry and tessellation shaders"
],
"issue": "http://anglebug.com/42264006"
},
{
"name": "supports_maintenance9",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_maintenance9 extension"
],
"issue": "https://anglebug.com/429339330"
},
{
"name": "supports_shader_integer_dot_product",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_shader_integer_dot_product extension"
]
},
{
"name": "convert_lowp_and_mediump_float_uniforms_to_16_bits",
"category": "Features",
"description": [
"transform lowp and mediump float uniforms into 16 bits"
],
"issue": "http://anglebug.com/405795981"
},
{
"name": "supports_unified_image_layouts",
"category": "Features",
"description": [
"VkDevice supports VK_KHR_unified_image_layouts"
],
"issue": "https://anglebug.com/422982681"
},
{
"name": "supports_global_priority",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_global_priority"
],
"issue": "https://anglebug.com/397474813"
},
{
"name": "supports_global_priority_query",
"category": "Features",
"description": [
"VkDevice supports VK_EXT_global_priority_query"
],
"issue": "https://anglebug.com/397474813"
},
{
"name": "supports_buffer_device_address",
"category": "Features",
"description": [
"VkDevice supports the VK_KHR_buffer_device_address and uses ",
"physical storage buffers instead of storage buffers"
]
},
{
"name": "prefer_BGR565_to_RGB565",
"category": "Features",
"description": [
"Use BGR565 instead of RGB565 for performance reasons"
],
"issue": "https://issuetracker.google.com/409867243"
},
{
"name": "cl_serialized_execution",
"category": "Features",
"description": [
"Force each OpenCL enqueue command to submit and wait for fence."
]
},
{
"name": "externally_synchronize_pipeline_cache_access",
"category": "Workarounds",
"description": [
"Externally synchronize all pipeline cache accesses"
],
"issue": "https://anglebug.com/445240187"
},
{
"name": "support_shader_pixel_local_storage_angle",
"category": "Features",
"description": [
"Enable support for GL_ANGLE_shader_pixel_local_storage extension"
],
"issue": "https://anglebug.com/40096838"
}
]
}