| { |
| "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": "basic_GL_line_rasterization", |
| "category": "Features", |
| "description": [ |
| "Enable the use of pixel shader patching to implement OpenGL basic line ", |
| "rasterization rules" |
| ] |
| }, |
| { |
| "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": "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", |
| "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": "disable_fifo_present_mode", |
| "category": "Workarounds", |
| "description": [ |
| "VK_PRESENT_MODE_FIFO_KHR causes random timeouts" |
| ], |
| "issue": "http://anglebug.com/3153" |
| }, |
| { |
| "name": "bind_empty_for_unused_descriptor_sets", |
| "category": "Workarounds", |
| "description": [ |
| "Gaps in bound descriptor set indices causes the post-gap sets to misbehave" |
| ], |
| "issue": "http://anglebug.com/2727" |
| }, |
| { |
| "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": "shadow_buffers", |
| "category": "Features", |
| "description": [ |
| "Allocate a shadow buffer for GL buffer objects to reduce glMap* latency." |
| ], |
| "issue": "http://anglebug.com/4339" |
| }, |
| { |
| "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": "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": "supports_depth_clip_control", |
| "category": "Features", |
| "description": [ |
| "VkDevice supports VK_EXT_depth_clip_control extension." |
| ], |
| "issue": "http://anglebug.com/5421" |
| }, |
| { |
| "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": "generate_SPIRV_through_glslang", |
| "category": "Features", |
| "description": [ |
| "Translate SPIR-V through glslang." |
| ], |
| "issue": "http://anglebug.com/4889" |
| }, |
| { |
| "name": "force_driver_uniform_over_spec_const", |
| "category": "Workarounds", |
| "description": [ |
| "Forces using driver uniforms instead of specialization constants." |
| ], |
| "issue": "http://issuetracker.google.com/173636783" |
| }, |
| { |
| "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_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": "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": "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": "create_pipeline_during_link", |
| "category": "Features", |
| "description": [ |
| "Create pipeline with default state during glLinkProgram" |
| ], |
| "issue": "http://anglebug.com/7046" |
| }, |
| { |
| "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": "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_fragment_shading_rate", |
| "category": "Features", |
| "description": [ |
| "VkDevice supports VK_KHR_fragment_shading_rate extension" |
| ], |
| "issue": "http://anglebug.com/7172" |
| }, |
| { |
| "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" |
| } |
| ] |
| } |