Mesa 26.1 āĻāϰ āĻĒā§āϰāĻ•āĻžāĻļ, OpenGL āĻāĻŦāĻ‚ Vulkan-āĻāϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ

āϤāĻŋāύ āĻŽāĻžāϏ āϧāϰ⧇ āωāĻ¨ā§āύāϝāĻŧāύ⧇āϰ āĻĒāϰ, OpenGL āĻāĻŦāĻ‚ Vulkan API-āĻāϰ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ, Mesa 26.1.0, āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ Mesa 26.1.0 āĻļāĻžāĻ–āĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻ•āĻžāĻļāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ•; āϕ⧋āĻĄāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻšāĻ“āϝāĻŧāĻžāϰ āĻĒāϰ⧇, āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ, 26.1.1, āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāĻŦ⧇āĨ¤

Mesa 26.1 ANV āĻĄā§āϰāĻžāχāĻ­āĻžāϰāϗ⧁āϞāĻŋāϤ⧇ Intel GPU-āĻāϰ āϜāĻ¨ā§āϝ Vulkan 1.4 āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ API, AMD GPU-āĻāϰ āϜāĻ¨ā§āϝ RADV, NVIDIA GPU-āĻāϰ āϜāĻ¨ā§āϝ NVK, Apple GPU-āĻāϰ āϜāĻ¨ā§āϝ HoneyKrisp (hk), Qualcomm GPU-āĻāϰ āϜāĻ¨ā§āϝ Turnip, ARM Mali GPU-āĻāϰ āϜāĻ¨ā§āϝ PanVK, lavapipe āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āϰāĻžāĻ¸ā§āϟāĻžāϰāĻžāχāϜāĻžāϰ (lvp) āĻāĻŦāĻ‚ āĻāĻŽā§āϞ⧇āϟāϰ āĻŽā§‹āĻĄ (vn) āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤ v3dv (Broadcom VideoCore GPU for Raspberry Pi 4+) āĻāĻŦāĻ‚ dzn (Vulkan over Direct3D 12) āĻĄā§āϰāĻžāχāĻ­āĻžāϰāϗ⧁āϞāĻŋ Vulkan 1.0 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇, kk āĻĄā§āϰāĻžāχāĻ­āĻžāϰ (KosmicKrisp, Vulkan over Metal) Vulkan 1.1 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ pvr āĻĄā§āϰāĻžāχāĻ­āĻžāϰ (Imagination PowerVR GPU) Vulkan 1.2 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

Mesa iris (Intel Gen 4.6+ GPUs), radeonsi (AMD), Crocus (āĻĒ⧁āϰāĻžāϤāύ Intel Gen8-Gen4 GPUs), AMD (r7), zink, llvmpipe, virgl (QEMU/KVM āĻāϰ āϜāĻ¨ā§āϝ virgil600D āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ GPU), freedreno (Qualcomm Adreno), d3d3 (DirectX 12 āĻāϰ āωāĻĒāϰ⧇ OpenGL āĻ¸ā§āϤāϰ), āĻāĻŦāĻ‚ asahi (Apple M12 āĻāĻŦāĻ‚ M1 āϚāĻŋāĻĒāϏ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ AGX GPU) āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ OpenGL 2 āϏāĻŽāĻ°ā§āĻĨāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ NVIDIA (nvc4.5) GPU āϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ OpenGL 0 āϏāĻŽāĻ°ā§āĻĨāύ āωāĻĒāϞāĻŦā§āϧāĨ¤ Softpipe (āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āϰāĻžāĻ¸ā§āϟāĻžāϰāĻžāχāϜāĻžāϰ) āĻāĻŦāĻ‚ nv3.3 (NVIDIA NV50) āĻĄā§āϰāĻžāχāĻ­āĻžāϰāϗ⧁āϞāĻŋāϤ⧇ OpenGL 50 āϏāĻŽāĻ°ā§āĻĨāύ āωāĻĒāϞāĻŦā§āϧāĨ¤ OpenGL 3 āĻĒā§āϝāĻžāύāĻĢā§āϰāĻ¸ā§āϟ (ARM Mali GPU) āĻāĻŦāĻ‚ v3.1d (Broadcom VideoCore GPU) āĻĄā§āϰāĻžāχāĻ­āĻžāϰāϗ⧁āϞāĻŋāϤ⧇ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤāĨ¤

āĻĒā§āϰāϧāĻžāύ āωāĻĻā§āĻ­āĻžāĻŦāύ:

  • āχāĻ¨ā§āĻŸā§‡āϞ āϜāĻŋāĻĒāĻŋāχāω-āĻāϰ āĻĄā§āϰāĻžāχāĻ­āĻžāϰāϗ⧁āϞ⧋ (āφāχāϰāĻŋāϏ, āĻ•ā§āϰ⧋āĻ•āĻžāϏ āĻāĻŦāĻ‚ āĻāĻāύāĻ­āĻŋ) āĻāĻ–āύ VirtIO-GPU-āϤ⧇ āύ⧇āϟāĻŋāĻ­ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āĻĨ⧇āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āϜāĻŋāĻĒāĻŋāχāω āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āϗ⧇āĻ¸ā§āϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āϜāĻŋāĻĒāĻŋāχāω (virtio-gpu-gl) āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āύ⧇āϟāĻŋāĻ­ āĻ•āύāĻŸā§‡āĻ•ā§āϏāϟ āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϰāĻ•ā§ƒāϤ āĻšā§‹āĻ¸ā§āϟ āϜāĻŋāĻĒāĻŋāχāω-āϤ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āωāĻ¨ā§āύāϤ āĻ•āϰ⧇āĨ¤
  • Zink āĻĄā§āϰāĻžāχāĻ­āĻžāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ PowerVR GPU-āϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ OpenGL ES 2.0 āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž Vulkan API āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ āĻāĻŽāύ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϤ⧇ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ-āĻ…ā§āϝāĻžāĻ•ā§āϏāĻŋāϞāĻžāϰ⧇āĻŸā§‡āĻĄ OpenGL āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤
  • āϝ⧇āϏāĻŦ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āύ⧇āϟāĻŋāĻ­ C++ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϏ⧇āϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ OpenCL āĻĄā§āϰāĻžāχāĻ­āĻžāϰ rusticl-āĻāϰ āĻāĻ–āύ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ•ā§āϝāĻžāϞāĻŋ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻž C++ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤
  • radeonsi āĻĄā§āϰāĻžāχāĻ­āĻžāϰ (AMD) GL_NV_timeline_semaphore OpenGL āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϟāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰ⧇āϛ⧇āĨ¤
  • āĻĒā§āϝāĻžāύāĻĢā§āϰāĻ¸ā§āϟ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ (āĻāφāϰāĻāĻŽ āĻŽāĻžāϞāĻŋ) āĻāĻ–āύ GL_EXT_shader_image_load_store āύāĻžāĻŽāĻ• OpenGL āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϟāĻŋ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤
  • v3d āĻĄā§āϰāĻžāχāĻ­āĻžāϰ (āĻŦā§āϰāĻĄāĻ•āĻŽ āĻ­āĻŋāĻĄāĻŋāĻ“āϕ⧋āϰ) āĻāĻ–āύ GL_ARB_sample_shading OpenGL āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϟāĻŋ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤
  • āĻ­āϞāĻ•āĻžāύ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇:
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_ARM_scheduling_controls
    • āĻĒā§āϝāĻžāύāĻ­āĻŋāϕ⧇-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_acquire_drm_display
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_astc_decode_mode
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_attachment_feedback_loop_dynamic_state
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_attachment_feedback_loop_layout
    • āϞāĻžāĻ­āĻžāĻĒāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ VK_EXT_blend_operation_advanced
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_color_write_enable
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_conditional_rendering
    • āĻĒā§āϝāĻžāύāĻ­āĻŋāϕ⧇-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_depth_clamp_control
    • RADV-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_descriptor_heap (āϝāĻ–āύ 'export RADV_EXPERIMENTAL=heap' āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ)
    • v3dv āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_hdr_metadata
    • āĻĒāĻŋāĻ­āĻŋāφāϰ-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_image_drm_format_modifier
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_image_view_min_lod
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_legacy_dithering
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_map_memory_placed
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_nested_command_buffer
    • āĻĒāĻŋāĻ­āĻŋāφāϰ-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_non_seamless_cube_map
    • RADV, NVK, Turnip, ANV, Honeykrisp, panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_present_timing
    • RADV-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_primitive_restart_index
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_rgba10x6_formats
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_shader_atomic_float
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_shader_stencil_export
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_EXT_zero_initialize_device_memory
    • nvk, RADV/GFX8+ āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_copy_memory_indirect
    • RADV-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_device_address_commands
    • VK_{KHR,EXT}_{surface,swapchain}_maintenance1 for panvk
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_get_display_properties2
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_get_surface_capabilities2
    • RADV-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_internally_synchronized_queues
    • āĻĒāĻŋāĻ­āĻŋāφāϰ-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_maintenance4
    • āĻĒāĻŋāĻ­āĻŋāφāϰ-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_pipeline_executable_propers
    • panvk, v3dv āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_present_id
    • VK_KHR_present_wait for panvk, v3dv
    • āĻĒāĻŋāĻ­āĻŋāφāϰ-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_sampler_ycbcr_conversion
    • āĻĒāĻŋāĻ­āĻŋāφāϰ-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_shader_integer_dot_product
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_shader_untyped_pointers
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_KHR_swapchain_mutable_format
    • āϟāĻžāĻ°ā§āύāĻŋāĻĒ⧇āϰ āϜāĻ¨ā§āϝ VK_QCOM_image_processing
    • panvk-āĻāϰ āϜāĻ¨ā§āϝ VK_VALVE_mutable_descriptor_type
    • RADV-āĻāϰ āϜāĻ¨ā§āϝ VK_VALVE_shader_mixed_float_dot_product (Vega20, Navi14, RDNA2+)
  • OpenCL āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇:
    • asahi, iris, llvmpipe, radeonsi āĻāĻŦāĻ‚ zink-āĻāϰ āϜāĻ¨ā§āϝ cl_khr_subgroup_ballot
    • asahi, llvmpipe, radeonsi, āĻāĻŦāĻ‚ zink-āĻāϰ āϜāĻ¨ā§āϝ cl_xr_subgroup_clustered_reduce
    • asahi, iris, llvmpipe, radeonsi āĻāĻŦāĻ‚ zink-āĻāϰ āϜāĻ¨ā§āϝ cl_khr_subgroup_extended_types
    • asahi, llvmpipe, radeonsi āĻāĻŦāĻ‚ zink-āĻāϰ āϜāĻ¨ā§āϝ cl_khr_subgroup_non_uniform_arithmetic
    • asahi, iris, llvmpipe, radeonsi āĻāĻŦāĻ‚ zink-āĻāϰ āϜāĻ¨ā§āϝ cl_khr_subgroup_non_uniform_vote
    • asahi, llvmpipe āĻāĻŦāĻ‚ zink-āĻāϰ āϜāĻ¨ā§āϝ cl_khr_subgroup_rotate
  • VirGL āĻĄā§āϰāĻžāχāĻ­āĻžāϰ, āϝāĻž QEMU-āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āϜāĻŋāĻĒāĻŋāχāω āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧇, āϏ⧇āϟāĻŋāϰ āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāĻŖ āφāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āύāĻž āϕ⧇āω āĻāϰ āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāϪ⧇āϰ āĻĻāĻžāϝāĻŧāĻŋāĻ¤ā§āĻŦ āύāĻŋāϤ⧇ āχāĻšā§āϛ⧁āĻ• āĻšāϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĢ⧇āϞāĻž āĻšāĻŦ⧇āĨ¤

āωāĻ¤ā§āϏ: opennet.ru