Mesa 26.1 విడుదల, OpenGL మరియు Vulkan యొక్క ఉచిత అమలు

మూడు నెలల అభివృద్ధి తర్వాత, OpenGL మరియు Vulkan APIల ఓపెన్ సోర్స్ అమలు, Mesa 26.1.0 విడుదల చేయబడింది. Mesa 26.1.0 బ్రాంచ్ యొక్క మొదటి విడుదల ప్రయోగాత్మకమైనది; కోడ్ పూర్తిగా స్థిరీకరించబడిన తర్వాత, స్థిరమైన వెర్షన్, 26.1.1, విడుదల చేయబడుతుంది.

Mesa 26.1 Intel GPUల కోసం ANV డ్రైవర్లలో 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 (రాస్ప్బెర్రీ పై 4+ కోసం Broadcom VideoCore GPU) మరియు dzn (Direct3D 12 పై Vulkan) డ్రైవర్లు Vulkan 1.0కి మద్దతు ఇస్తాయి, kk డ్రైవర్ (KosmicKrisp, Vulkan ఓవర్ Metal) Vulkan 1.1కి మద్దతు ఇస్తుంది మరియు pvr డ్రైవర్ (ఇమాజినేషన్ పవర్VR GPU) Vulkan 1.2కి మద్దతు ఇస్తుంది.

మెసా ఐరిస్ (ఇంటెల్ జెన్ 4.6+ GPUలు), రేడియోన్సి (AMD), క్రోకస్ (పాత ఇంటెల్ జెన్8-జెన్4 GPUలు), AMD (r7), జింక్, llvmpipe, virgl (QEMU/KVM కోసం virgil600D వర్చువల్ GPU), ఫ్రీడ్రెనో (క్వాల్కామ్ అడ్రినో), d3d3 (డైరెక్ట్‌ఎక్స్ 12 పైన ఓపెన్‌జిఎల్ లేయర్) మరియు అసహి (ఆపిల్ M12 మరియు M1 చిప్‌లలో ఉపయోగించే AGX GPU) లకు పూర్తి ఓపెన్‌జిఎల్ 2 మద్దతును కూడా అందిస్తుంది. NVIDIA (nvc4.5) GPUలకు OpenGL 0 మద్దతు అందుబాటులో ఉంది. సాఫ్ట్‌పైప్ (సాఫ్ట్‌వేర్ రాస్టరైజర్) మరియు nv3.3 (NVIDIA NV50) డ్రైవర్లలో OpenGL 50 మద్దతు అందుబాటులో ఉంది. పాన్‌ఫ్రాస్ట్ (ARM మాలి GPU) మరియు v3d (బ్రాడ్‌కామ్ వీడియోకోర్ GPU) డ్రైవర్లలో OpenGL 3.1 మద్దతు ఉంది.

ప్రధాన ఆవిష్కరణలు:

  • ఇంటెల్ GPUల (ఐరిస్, క్రోకస్, మరియు ANV) డ్రైవర్లు ఇప్పుడు VirtIO-GPUలోని నేటివ్ కాంటెక్స్ట్‌లను ఉపయోగించి వర్చువల్ మెషీన్‌ల నుండి నేరుగా GPU యాక్సెస్‌కు మద్దతు ఇస్తున్నాయి. నేటివ్ కాంటెక్స్ట్‌లు, ఆదేశాలను నేరుగా అసలైన హోస్ట్ GPUకి పంపడం ద్వారా, గెస్ట్ సిస్టమ్‌లో వర్చువల్ GPU (virtio-gpu-gl)తో పనిచేసేటప్పుడు పనితీరును మెరుగుపరుస్తాయి.
  • Zink డ్రైవర్ ద్వారా PowerVR GPUల కోసం OpenGL ES 2.0 మద్దతు జోడించబడింది, ఇది Vulkan APIకి మద్దతు ఇచ్చే పరికరాలలో హార్డ్‌వేర్-యాక్సిలరేటెడ్ OpenGLని ప్రారంభిస్తుంది.
  • నేటివ్ C++ stdlibsను ఉపయోగించే అప్లికేషన్‌లతో సరిగ్గా పనిచేయడానికి, rusticl OpenCL డ్రైవర్‌కు ఇప్పుడు స్టాటిక్‌గా లింక్ చేయబడిన C++ stdlib అవసరం.
  • రేడియాన్సీ డ్రైవర్ (AMD) GL_NV_timeline_semaphore OpenGL ఎక్స్టెన్షన్‌కు మద్దతును జోడించింది.
  • పాన్‌ఫ్రాస్ట్ డ్రైవర్ (ARM మాలి) ఇప్పుడు GL_EXT_shader_image_load_store అనే OpenGL ఎక్స్‌టెన్షన్‌కు మద్దతు ఇస్తుంది.
  • v3d డ్రైవర్ (బ్రాడ్‌కామ్ వీడియోకోర్) ఇప్పుడు GL_ARB_sample_shading OpenGL ఎక్స్‌టెన్షన్‌కు మద్దతు ఇస్తుంది.
  • Vulkan పొడిగింపులకు మద్దతు జోడించబడింది:
    • పాన్‌వికె కోసం VK_ARM_షెడ్యూలింగ్_నియంత్రణలు
    • పాన్‌వికె కోసం VK_EXT_acquire_drm_display
    • పాన్‌వికె కోసం VK_EXT_astc_decode_mode
    • పాన్‌వికె కోసం VK_EXT_అటాచ్‌మెంట్_ఫీడ్‌బ్యాక్_లూప్_డైనమిక్_స్టేట్
    • పాన్‌వికె కోసం VK_EXT_అటాచ్‌మెంట్_ఫీడ్‌బ్యాక్_లూప్_లేఅవుట్
    • లావాపైప్ కోసం VK_EXT_blend_operation_advanced
    • పాన్‌వికె కోసం VK_EXT_color_write_enable
    • పాన్‌వికె కోసం VK_EXT_కండిషనల్_రెండరింగ్
    • పాన్‌వికె కోసం VK_EXT_depth_clamp_control
    • RADV కోసం VK_EXT_descriptor_heap ('export RADV_EXPERIMENTAL=heap' అని సెట్ చేసినప్పుడు)
    • v3dv కోసం VK_EXT_hdr_metadata
    • pvr కోసం VK_EXT_image_drm_format_modifier
    • పాన్‌వికె కోసం VK_EXT_image_view_min_lod
    • పాన్‌వికె కోసం VK_EXT_legacy_dithering
    • పాన్‌వికె కోసం VK_EXT_map_memory_placed
    • పాన్‌వికె కోసం VK_EXT_nested_command_buffer
    • pvr కోసం VK_EXT_non_seamless_cube_map
    • RADV, NVK, Turnip, ANV, Honeykrisp, panvk ల కోసం VK_EXT_present_timing
    • RADV కోసం VK_EXT_primitive_restart_index
    • పాన్‌వికె కోసం VK_EXT_rgba10x6_formats
    • పాన్‌వికె కోసం VK_EXT_shader_atomic_float
    • పాన్‌వికె కోసం VK_EXT_shader_stencil_export
    • పాన్‌వికె కోసం 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
    • పాన్‌వికె కోసం VK_KHR_get_display_properties2
    • పాన్‌వికె కోసం VK_KHR_get_surface_capabilities2
    • RADV కోసం VK_KHR_internally_synchronized_queues
    • pvr కోసం VK_KHR_maintenance4
    • pvr కోసం VK_KHR_pipeline_executable_properties
    • panvk, v3dv కోసం VK_KHR_present_id
    • VK_KHR_present_wait for panvk, v3dv
    • pvr కోసం VK_KHR_sampler_ycbcr_conversion
    • pvr కోసం VK_KHR_shader_integer_dot_product
    • పాన్‌వికె కోసం VK_KHR_shader_untyped_pointers
    • పాన్‌వికె కోసం VK_KHR_swapchain_mutable_format
    • టర్నిప్ కోసం VK_QCOM_image_processing
    • పాన్‌వికె కోసం VK_VALVE_mutable_descriptor_type
    • RADV (Vega20, Navi14, RDNA2+) కోసం VK_VALVE_shader_mixed_float_dot_product
  • అమలు చేయబడిన 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
  • QEMU కోసం వర్చువల్ GPUని అమలు చేసే VirGL డ్రైవర్‌కు ఇకపై నిర్వహణ లేదు మరియు దాని నిర్వహణ బాధ్యతను ఎవరైనా స్వీకరించడానికి ముందుకు రాకపోతే దానిని తొలగించడం జరుగుతుంది.

మూలం: opennet.ru