mirror of https://github.com/axmolengine/axmol.git
1125 lines
40 KiB
JSON
1125 lines
40 KiB
JSON
{
|
|
"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": "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/2970"
|
|
},
|
|
{
|
|
"name": "depth_clamping",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"The depth value is not clamped to [0,1] for floating point depth buffers."
|
|
],
|
|
"issue": "http://anglebug.com/3970"
|
|
},
|
|
{
|
|
"name": "mutable_mipmap_texture_upload",
|
|
"category": "Features",
|
|
"description": [
|
|
"Enable uploading the previously defined mutable mipmap texture."
|
|
],
|
|
"issue": "https://anglebug.com/7308"
|
|
},
|
|
{
|
|
"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_GGP_frame_token",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_GGP_frame_token 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_filtering_precision",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_GOOGLE_sampler_filtering_precision 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/2517"
|
|
},
|
|
{
|
|
"name": "supports_android_native_fence_sync",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the EGL_ANDROID_native_fence_sync extension"
|
|
],
|
|
"issue": "http://anglebug.com/2517"
|
|
},
|
|
{
|
|
"name": "supports_image_cube_array",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the imageCubeArray feature properly"
|
|
],
|
|
"issue": "http://anglebug.com/3584"
|
|
},
|
|
{
|
|
"name": "supports_pipeline_statistics_query",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the pipelineStatisticsQuery feature"
|
|
],
|
|
"issue": "http://anglebug.com/5430"
|
|
},
|
|
{
|
|
"name": "supports_shader_stencil_export",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_EXT_shader_stencil_export extension"
|
|
]
|
|
},
|
|
{
|
|
"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/3205"
|
|
},
|
|
{
|
|
"name": "supports_transform_feedback_extension",
|
|
"category": "Features",
|
|
"description": [
|
|
"Transform feedback uses the VK_EXT_transform_feedback extension."
|
|
],
|
|
"issue": "http://anglebug.com/3206"
|
|
},
|
|
{
|
|
"name": "supports_geometry_streams_capability",
|
|
"category": "Features",
|
|
"description": [
|
|
"Implementation supports the GeometryStreams SPIR-V capability."
|
|
],
|
|
"issue": "http://anglebug.com/3206"
|
|
},
|
|
{
|
|
"name": "supports_index_type_uint8",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_EXT_index_type_uint8 extension"
|
|
],
|
|
"issue": "http://anglebug.com/4405"
|
|
},
|
|
{
|
|
"name": "supports_custom_border_color",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_EXT_custom_border_color extension"
|
|
],
|
|
"issue": "http://anglebug.com/3577"
|
|
},
|
|
{
|
|
"name": "supports_multi_draw_indirect",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the multiDrawIndirect extension"
|
|
],
|
|
"issue": "http://anglebug.com/6439"
|
|
},
|
|
{
|
|
"name": "supports_depth_stencil_resolve",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_KHR_depth_stencil_resolve ",
|
|
"extension with the independentResolveNone feature"
|
|
],
|
|
"issue": "http://anglebug.com/4836"
|
|
},
|
|
{
|
|
"name": "supports_multisampled_render_to_single_sampled_GOOGLEX",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_GOOGLEX_multisampled_render_to_single_sampled extension"
|
|
],
|
|
"issue": "http://anglebug.com/4836"
|
|
},
|
|
{
|
|
"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/4836"
|
|
},
|
|
{
|
|
"name": "supports_multiview",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_KHR_multiview extension"
|
|
],
|
|
"issue": "http://anglebug.com/6048"
|
|
},
|
|
{
|
|
"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/3452"
|
|
},
|
|
{
|
|
"name": "disable_flipping_blit_with_command",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"vkCmdBlitImage with flipped coordinates blits incorrectly."
|
|
],
|
|
"issue": "http://anglebug.com/3498"
|
|
},
|
|
{
|
|
"name": "per_frame_window_size_query",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE when window resizing"
|
|
],
|
|
"issue": "http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625"
|
|
},
|
|
{
|
|
"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/4428"
|
|
},
|
|
{
|
|
"name": "supports_external_memory_dma_buf_and_modifiers",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier ",
|
|
"extensions"
|
|
],
|
|
"issue": "http://anglebug.com/6248"
|
|
},
|
|
{
|
|
"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/4384"
|
|
},
|
|
{
|
|
"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/2162"
|
|
},
|
|
{
|
|
"name": "enable_pre_rotate_surfaces",
|
|
"category": "Features",
|
|
"description": [
|
|
"Enable Android pre-rotation for landscape applications"
|
|
],
|
|
"issue": "http://anglebug.com/3502"
|
|
},
|
|
{
|
|
"name": "enable_precision_qualifiers",
|
|
"category": "Features",
|
|
"description": [
|
|
"Enable precision qualifiers in shaders"
|
|
],
|
|
"issue": "http://anglebug.com/3078"
|
|
},
|
|
{
|
|
"name": "varyings_require_matching_precision_in_spirv",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Add additional SPIRV instructions to make sure precision ",
|
|
"between shader stages match with each other"
|
|
],
|
|
"issue": "http://anglebug.com/7488"
|
|
},
|
|
{
|
|
"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/4633"
|
|
},
|
|
{
|
|
"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/6860"
|
|
},
|
|
{
|
|
"name": "async_command_queue",
|
|
"category": "Features",
|
|
"description": [
|
|
"Use CommandQueue worker thread to dispatch work to GPU."
|
|
],
|
|
"issue": "http://anglebug.com/4324"
|
|
},
|
|
{
|
|
"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/4551"
|
|
},
|
|
{
|
|
"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/4551"
|
|
},
|
|
{
|
|
"name": "supports_render_pass_store_op_none",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_QCOM_render_pass_store_ops extension."
|
|
],
|
|
"issue": "http://anglebug.com/5055"
|
|
},
|
|
{
|
|
"name": "supports_render_pass_load_store_op_none",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_load_store_op_none extension."
|
|
],
|
|
"issue": "http://anglebug.com/5371"
|
|
},
|
|
{
|
|
"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/7370"
|
|
},
|
|
{
|
|
"name": "supports_depth_clip_control",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_depth_clip_control extension."
|
|
],
|
|
"issue": "http://anglebug.com/5421"
|
|
},
|
|
{
|
|
"name": "supports_primitive_topology_list_restart",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_primitive_topology_list_restart extension."
|
|
],
|
|
"issue": "http://anglebug.com/3832"
|
|
},
|
|
{
|
|
"name": "supports_blend_operation_advanced",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_blend_operation_advanced extension."
|
|
],
|
|
"issue": "http://anglebug.com/3586"
|
|
},
|
|
{
|
|
"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/5281"
|
|
},
|
|
{
|
|
"name": "enable_multisampled_render_to_texture",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Expose EXT_multisampled_render_to_texture"
|
|
],
|
|
"issue": "http://anglebug.com/4937"
|
|
},
|
|
{
|
|
"name": "defer_flush_until_end_render_pass",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Allow glFlush to be deferred until renderpass ends"
|
|
],
|
|
"issue": "https://issuetracker.google.com/issues/166475273"
|
|
},
|
|
{
|
|
"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/5061"
|
|
},
|
|
{
|
|
"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": "compress_vertex_data",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Compress vertex data to smaller data types when ",
|
|
"possible. Using this feature makes ANGLE non-conformant."
|
|
]
|
|
},
|
|
{
|
|
"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/4901"
|
|
},
|
|
{
|
|
"name": "emulated_prerotation_180",
|
|
"category": "Features",
|
|
"description": [
|
|
"Emulate 180-degree prerotation."
|
|
],
|
|
"issue": "http://anglebug.com/4901"
|
|
},
|
|
{
|
|
"name": "emulated_prerotation_270",
|
|
"category": "Features",
|
|
"description": [
|
|
"Emulate 270-degree prerotation."
|
|
],
|
|
"issue": "http://anglebug.com/4901"
|
|
},
|
|
{
|
|
"name": "prefer_driver_uniform_over_spec_const",
|
|
"category": "Features",
|
|
"description": [
|
|
"Prefer using driver uniforms instead of specialization constants."
|
|
],
|
|
"issue": "http://anglebug.com/7406"
|
|
},
|
|
{
|
|
"name": "expose_non_conformant_extensions_and_versions",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Expose GLES versions and extensions that are not conformant."
|
|
],
|
|
"issue": "http://anglebug.com/5375"
|
|
},
|
|
{
|
|
"name": "emulate_R32f_image_atomic_exchange",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Emulate r32f images with r32ui to support imageAtomicExchange."
|
|
],
|
|
"issue": "http://anglebug.com/5535"
|
|
},
|
|
{
|
|
"name": "supports_negative_viewport",
|
|
"category": "Features",
|
|
"description": [
|
|
"The driver supports inverting the viewport with a negative height."
|
|
]
|
|
},
|
|
{
|
|
"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": "use_multiple_descriptors_for_external_formats",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Return a default descriptor count for external formats."
|
|
],
|
|
"issue": "http://anglebug.com/6141"
|
|
},
|
|
{
|
|
"name": "supports_protected_memory",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports protected memory"
|
|
],
|
|
"issue": "http://anglebug.com/3965"
|
|
},
|
|
{
|
|
"name": "supports_host_query_reset",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_host_query_reset extension"
|
|
],
|
|
"issue": "http://anglebug.com/6692"
|
|
},
|
|
{
|
|
"name": "supports_pipeline_creation_cache_control",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_pipeline_creation_cache_control extension"
|
|
],
|
|
"issue": "http://anglebug.com/5881"
|
|
},
|
|
{
|
|
"name": "supports_pipeline_creation_feedback",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_pipeline_creation_feedback extension"
|
|
],
|
|
"issue": "http://anglebug.com/5881"
|
|
},
|
|
{
|
|
"name": "supports_primitives_generated_query",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_primitives_generated_query extension"
|
|
],
|
|
"issue": "http://anglebug.com/5430"
|
|
},
|
|
{
|
|
"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/6651"
|
|
},
|
|
{
|
|
"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": "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/6878"
|
|
},
|
|
{
|
|
"name": "emulate_dithering",
|
|
"category": "Features",
|
|
"description": [
|
|
"Emulate OpenGL dithering"
|
|
],
|
|
"issue": "http://anglebug.com/6755"
|
|
},
|
|
{
|
|
"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/6953"
|
|
},
|
|
{
|
|
"name": "emulate_advanced_blend_equations",
|
|
"category": "Features",
|
|
"description": [
|
|
"Emulate GL_KHR_blend_equation_advanced"
|
|
],
|
|
"issue": "http://anglebug.com/3586"
|
|
},
|
|
{
|
|
"name": "precision_safe_division",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Special case handling for platforms that do not generate 1.0f even when the dividend and ",
|
|
"divisor have the same 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/6929"
|
|
},
|
|
{
|
|
"name": "retain_SPIRV_debug_info",
|
|
"category": "Features",
|
|
"description": [
|
|
"Retain debug info in SPIR-V blob."
|
|
],
|
|
"issue": "http://anglebug.com/5901"
|
|
},
|
|
{
|
|
"name": "warm_up_pipeline_cache_at_link",
|
|
"category": "Features",
|
|
"description": [
|
|
"Warm up the Vulkan pipeline cache at link time"
|
|
],
|
|
"issue": "http://anglebug.com/5881"
|
|
},
|
|
{
|
|
"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/7047"
|
|
},
|
|
{
|
|
"name": "force_static_vertex_stride_state",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Force static state for VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT due to ",
|
|
"driver bugs"
|
|
],
|
|
"issue": "https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=107106"
|
|
},
|
|
{
|
|
"name": "supports_extended_dynamic_state",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_extended_dynamic_state extension"
|
|
],
|
|
"issue": "http://anglebug.com/5906"
|
|
},
|
|
{
|
|
"name": "supports_extended_dynamic_state2",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_extended_dynamic_state2 extension"
|
|
],
|
|
"issue": "http://anglebug.com/5906"
|
|
},
|
|
{
|
|
"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/3862"
|
|
},
|
|
{
|
|
"name": "supports_fragment_shading_rate",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_KHR_fragment_shading_rate extension"
|
|
],
|
|
"issue": "http://anglebug.com/7172"
|
|
},
|
|
{
|
|
"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/6876"
|
|
},
|
|
{
|
|
"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/7320"
|
|
},
|
|
{
|
|
"name": "supports_imageless_framebuffer",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_KHR_imageless_framebuffer extension"
|
|
],
|
|
"issue": "http://anglebug.com/7553"
|
|
},
|
|
{
|
|
"name": "prefer_linear_filter_for_YUV",
|
|
"category": "Features",
|
|
"description": [
|
|
"Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion"
|
|
],
|
|
"issue": "https://anglebug.com/7382"
|
|
},
|
|
{
|
|
"name": "supports_yuv_target",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment"
|
|
]
|
|
},
|
|
{
|
|
"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/7556"
|
|
},
|
|
{
|
|
"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/7489"
|
|
},
|
|
{
|
|
"name": "supports_rasterization_order_attachment_access",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_rasterization_order_attachment_access extension"
|
|
],
|
|
"issue": "https://anglebug.com/7604"
|
|
},
|
|
{
|
|
"name": "egl_colorspace_attribute_passthrough",
|
|
"category": "Features",
|
|
"description": [
|
|
"Support passthrough of EGL colorspace attribute values"
|
|
],
|
|
"issue": "https://anglebug.com/7319"
|
|
},
|
|
{
|
|
"name": "supports_pipeline_robustness",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_pipeline_robustness extension"
|
|
],
|
|
"issue": "https://anglebug.com/5845"
|
|
},
|
|
{
|
|
"name": "supports_vertex_input_dynamic_state",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_vertex_input_dynamic_state extension"
|
|
],
|
|
"issue": "https://anglebug.com/7162"
|
|
},
|
|
{
|
|
"name": "supports_color_write_enable",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports VK_EXT_color_write_enable extension"
|
|
],
|
|
"issue": "https://anglebug.com/7161"
|
|
},
|
|
{
|
|
"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/7369"
|
|
},
|
|
{
|
|
"name": "prefer_monolithic_pipelines_over_libraries",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Whether monolithic pipelines perform significantly better than libraries"
|
|
],
|
|
"issue": "https://anglebug.com/7369"
|
|
},
|
|
{
|
|
"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/7369"
|
|
},
|
|
{
|
|
"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/7369"
|
|
},
|
|
{
|
|
"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/7369"
|
|
},
|
|
{
|
|
"name": "has_effective_pipeline_cache_serialization",
|
|
"category": "Features",
|
|
"description": [
|
|
"Whether the implementation serializes the Vulkan pipeline cache effectively. ",
|
|
"On some implementations, pipeline cache serialization returns no data, so there ",
|
|
"is no benefit to serializing it"
|
|
],
|
|
"issue": "https://anglebug.com/7369"
|
|
},
|
|
{
|
|
"name": "enable_async_pipeline_cache_compression",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Enable compressing pipeline cache in a thread."
|
|
],
|
|
"issue": "http://anglebug.com/4722"
|
|
},
|
|
{
|
|
"name": "supports_pipeline_protected_access",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_EXT_pipeline_protected_access extension"
|
|
],
|
|
"issue": "https://anglebug.com/7714"
|
|
},
|
|
{
|
|
"name": "supports_mixed_read_write_depth_stencil_layouts",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the mixed read and write depth/stencil layouts introduced by VK_KHR_maintenance2"
|
|
],
|
|
"issue": "https://anglebug.com/7899"
|
|
},
|
|
{
|
|
"name": "supports_swapchain_maintenance1",
|
|
"category": "Features",
|
|
"description": [
|
|
"VkDevice supports the VK_EXT_surface_maintenance1 and VK_EXT_swapchain_maintenance1 extensions"
|
|
],
|
|
"issue": "https://anglebug.com/7847"
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|