Skip to content

Missing Features

Matthew Smit edited this page Dec 2, 2019 · 8 revisions

We aim to support all of the vulkan standard and all extensions. However, some extensions are not useful or impossible for a CPU renderer to correctly implement. Additionally, not all features are currently implemented, yet will be.

Core features not currently implemented

  • Geometry Shader
  • Tessellation Shader
  • Multiple Viewports
  • Anisotropy
  • Sparse Memory for Linux
  • Subpixel rendering
  • Indirect rendering
  • Multisampling
  • Queries
  • Point Rendering
  • Line Rendering
  • Compressed Textures

Extensions not currently implemented

  • VK_KHR_8bit_storage
  • VK_KHR_create_renderpass2
  • VK_KHR_depth_stencil_resolve
  • VK_KHR_display
  • VK_KHR_draw_indirect_count
  • VK_KHR_external_fence_fd
  • VK_KHR_external_fence_win32
  • VK_KHR_external_memory_fd
  • VK_KHR_external_memory_win32
  • VK_KHR_external_semaphore_fd
  • VK_KHR_external_semaphore_win32
  • VK_KHR_get_display_properties2
  • VK_KHR_get_surface_capabilities2
  • VK_KHR_image_format_list
  • VK_KHR_imageless_framebuffer
  • VK_KHR_incremental_present
  • VK_KHR_pipeline_executable_properties
  • VK_KHR_push_descriptor
  • VK_KHR_sampler_mirror_clamp_to_edge
  • VK_KHR_separate_depth_stencil_layouts
  • VK_KHR_shader_atomic_int64
  • VK_KHR_shader_clock
  • VK_KHR_shader_float16_int8
  • VK_KHR_shader_float_controls
  • VK_KHR_shader_subgroup_extended_types
  • VK_KHR_shared_presentable_image
  • VK_KHR_surface_protected_capabilities
  • VK_KHR_swapchain_mutable_format
  • VK_KHR_timeline_semaphore
  • VK_KHR_uniform_buffer_standard_layout
  • VK_KHR_vulkan_memory_model
  • VK_KHR_win32_keyed_mutex
  • VK_EXT_acquire_xlib_display
  • VK_EXT_astc_decode_mode
  • VK_EXT_blend_operation_advanced
  • VK_EXT_calibrated_timestamps
  • VK_EXT_conditional_rendering
  • VK_EXT_conservative_rasterization
  • VK_EXT_debug_utils
  • VK_EXT_depth_clip_enable
  • VK_EXT_depth_range_unrestricted
  • VK_EXT_descriptor_indexing
  • VK_EXT_direct_mode_display
  • VK_EXT_discard_rectangles
  • VK_EXT_display_control
  • VK_EXT_display_surface_counter
  • VK_EXT_filter_cubic
  • VK_EXT_fragment_density_map
  • VK_EXT_fragment_shader_interlock
  • VK_EXT_full_screen_exclusive
  • VK_EXT_global_priority
  • VK_EXT_headless_surface
  • VK_EXT_host_query_reset
  • VK_EXT_image_drm_format_modifier
  • VK_EXT_index_type_uint8
  • VK_EXT_inline_uniform_block
  • VK_EXT_line_rasterization
  • VK_EXT_memory_budget
  • VK_EXT_memory_priority
  • VK_EXT_post_depth_coverage
  • VK_EXT_queue_family_foreign
  • VK_EXT_sample_locations
  • VK_EXT_scalar_block_layout
  • VK_EXT_separate_stencil_usage
  • VK_EXT_shader_demote_to_helper_invocation
  • VK_EXT_shader_stencil_export
  • VK_EXT_shader_subgroup_ballot
  • VK_EXT_shader_subgroup_vote
  • VK_EXT_shader_viewport_index_layer
  • VK_EXT_subgroup_size_control
  • VK_EXT_swapchain_colorspace
  • VK_EXT_texel_buffer_alignment
  • VK_EXT_texture_compression_astc_hdr
  • VK_EXT_transform_feedback
  • VK_EXT_validation_cache
  • VK_EXT_validation_features
  • VK_EXT_vertex_attribute_divisor
  • VK_EXT_ycbcr_image_arrays
  • VK_AMD_buffer_marker
  • VK_AMD_device_coherent_memory
  • VK_AMD_display_native_hdr
  • VK_AMD_gcn_shader
  • VK_AMD_memory_overallocation_behavior
  • VK_AMD_mixed_attachment_samples
  • VK_AMD_pipeline_compiler_control
  • VK_AMD_rasterization_order
  • VK_AMD_shader_ballot
  • VK_AMD_shader_core_properties
  • VK_AMD_shader_core_properties2
  • VK_AMD_shader_explicit_vertex_parameter
  • VK_AMD_shader_fragment_mask
  • VK_AMD_shader_image_load_store_lod
  • VK_AMD_shader_info
  • VK_AMD_shader_trinary_minmax
  • VK_AMD_texture_gather_bias_lod
  • VK_GOOGLE_decorate_string
  • VK_GOOGLE_display_timing
  • VK_GOOGLE_hlsl_functionality1
  • VK_GOOGLE_user_type
  • VK_IMG_filter_cubic
  • VK_IMG_format_pvrtc
  • VK_INTEL_performance_query
  • VK_INTEL_shader_integer_functions2
  • VK_NVX_device_generated_commands
  • VK_NVX_image_view_handle
  • VK_NVX_multiview_per_view_attributes
  • VK_NV_clip_space_w_scaling
  • VK_NV_compute_shader_derivatives
  • VK_NV_cooperative_matrix
  • VK_NV_corner_sampled_image
  • VK_NV_coverage_reduction_mode
  • VK_NV_dedicated_allocation_image_aliasing
  • VK_NV_device_diagnostic_checkpoints
  • VK_NV_fill_rectangle
  • VK_NV_fragment_coverage_to_color
  • VK_NV_fragment_shader_barycentric
  • VK_NV_framebuffer_mixed_samples
  • VK_NV_geometry_shader_passthrough
  • VK_NV_mesh_shader
  • VK_NV_ray_tracing
  • VK_NV_representative_fragment_test
  • VK_NV_sample_mask_override_coverage
  • VK_NV_scissor_exclusive
  • VK_NV_shader_image_footprint
  • VK_NV_shader_sm_builtins
  • VK_NV_shader_subgroup_partitioned
  • VK_NV_shading_rate_image
  • VK_NV_viewport_array2
  • VK_NV_viewport_swizzle

Probably will never implemented

Extension Reason
VK_EXT_pci_bus_info The device is not on the PCI bus.
VK_EXT_hdr_metadata Cannot control HDR settings for Win32 desktop applications.
VK_KHR_display_swapchain This is likely not possible as we render using the underlying window system.
VK_KHR_external_memory All the memory we use is per-process, using external memory would be difficult.