发布 Mesa 21.2,免费实施 OpenGL 和 Vulkan

经过三个月的开发,OpenGL 和 Vulkan API 的免费实现版本 - Mesa 21.2.0 - 发布了。 Mesa 21.2.0分支的第一个版本处于实验状态——代码最终稳定后,将发布稳定版本21.2.1。

Mesa 21.2 完全支持 4.6、iris (Intel)、radeonsi (AMD)、zink 和 llvmpipe 驱动程序的 OpenGL 965。 OpenGL 4.5 支持适用于 AMD (r600) 和 NVIDIA (nvc0) GPU,OpenGL 4.3 支持 virgl(用于 QEMU/KVM 的 Virgil3D 虚拟 GPU)。 Vulkan 1.2 支持适用于 Intel 和 AMD 卡以及模拟器模式 (vn),Vulkan 1.1 支持适用于 Qualcomm GPU 和 lavapipe 软件光栅器,Vulkan 1.0 支持 Broadcom VideoCore VI GPU (Raspberry Pi 4) 。

主要创新:

  • asahi OpenGL 驱动程序包含在对 Apple M1 芯片中 GPU 的初始支持中。 该驱动程序使用Gallium接口,支持OpenGL 2.1和OpenGL ES 2.0的大部分功能,但尚不适合运行大多数游戏。 驱动程序代码基于 Gallium 参考 noop 驱动程序,其中一些代码是从为 ARM Mali GPU 开发的 Panfrost 驱动程序移植过来的。
  • Crocus OpenGL 驱动程序包含对旧版 Intel GPU(基于 Gen4-Gen7 微架构)的支持,而 Iris 驱动程序不支持这些 GPU。 与 i965 驱动程序不同,新驱动程序基于 Gallium3D 架构,它将内存管理任务外包给 Linux 内核中的 DRI 驱动程序,并提供现成的状态跟踪器,支持输出对象的重用缓存。
  • 包含 PanVk 驱动程序,为 ARM Mali Midgard 和 Bifrost GPU 的 Vulkan 图形 API 提供支持。 PanVk 由 Collabora 员工开发,定位为 Panfrost 项目开发的延续,提供对 OpenGL 的支持。
  • Midgard GPU(Mali T760 及更新版本)和 Bifrost GPU(Mali G31、G52、G76)的 Panfrost 驱动程序支持 OpenGL ES 3.1。 未来的计划包括提高 Bifrost 芯片的性能以及实现基于 Valhall 架构(Mali G77 及更新版本)的 GPU 支持。
  • 32 位 x86 构建使用 sse87 指令而不是 x2 指令进行数学计算。
  • 适用于 NVIDIA GT50x GPU (GeForce GT 21×2) 的 Nouveau nv0 驱动程序支持 OpenGL ES 3.1。
  • 专为 Qualcomm Adreno GPU 开发的 Vulkan 驱动程序 TURNIP 和 OpenGL 驱动程序 Freedreno 初步支持 Adreno a6xx gen4 GPU(a660、a635)。
  • RADV (AMD) Vulkan 驱动程序添加了对使用 NGG(下一代几何)着色器引擎的图元剔除的支持。 已经实现了使用MSVC编译器在Windows平台上构建RADV驱动程序的能力。
  • ANV Vulkan 驱动程序(英特尔)和 Iris OpenGL 驱动程序已开展准备工作,为即将推出的英特尔 Xe-HPG (DG2) 显卡提供支持。 这包括与光线追踪相关的初始功能以及对光线追踪着色器的支持。
  • lavapipe 驱动程序为 Vulkan API 实现了软件光栅化器(类似于 llvmpipe,但对于 Vulkan,将 Vulkan API 调用转换为 Gallium API),支持“wideLines”模式(为宽度超过 1.0 的线条提供支持)。
  • 已实现对动态发现和加载替代 GBM(通用缓冲区管理器)后端的支持。 此更改旨在改进具有 NVIDIA 驱动程序的系统上的 Wayland 支持。
  • Zink 驱动程序(Vulkan 之上的 OpenGL API 实现,如果系统的驱动程序仅限于支持 Vulkan API,则允许您获得硬件加速 OpenGL)支持 OpenGL 扩展 GL_ARB_sample_locations、GL_ARB_sparse_buffer、GL_ARB_shader_group_vote、GL_ARB_texture_filter_minmax 和 GL_ARB_shader_clock。 添加了 DRM 格式修饰符(直接渲染管理器,启用 VK_EXT_image_drm_format_modifier 扩展)。
  • Vulkan 驱动程序 RADV (AMD)、ANV (Intel) 和 lavapipe 添加了对扩展的支持:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_drm(RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow(RADV,ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquire_drm_display(RADV,ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_separate_depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2(lavapipe)。

来源: opennet.ru

添加评论