2026 年,OpenGL API 仍在不断推出新的扩展。昨天合并到 OpenGL 注册表中的是一项新扩展,旨在帮助 Wine 在 64 位 Linux 系统上运行 32 位 Windows 游戏/应用程序。
OpenGL Registry 中的这项新扩展名为 MESA_map_buffer_client_pointer。该扩展允许应用程序指定用于映射缓冲区的指针范围。该扩展旨在协助 Wine 项目在 64 位 Linux 系统上实现 OpenGL 32 位 ABI。借助此扩展,Wine 能够返回位于 32 位地址范围内的地址。
MESA_map_buffer_client_pointer 扩展由 CodeWeavers 的 Derek Lesho 设计。该扩展的规范可通过 OpenGL Registry 查阅。

相关的拉取请求进一步解释了这一情况:
“目前,Wine 会为缓冲区设置一个 CPU 存储空间,并在调用 glUnmapBuffer 时从中复制内容。对于持久性贴图,它目前要么使用带 VK_EXT_map_memory_placed 的 Vulkan 资源共享,要么使用 AMD_pinned_memory。
这些方法无法以同等速度处理传统映射,因为它们将缓冲区上传管理转移到了应用程序端,而应用程序端无法提供中间缓冲区来避免不必要的同步操作。
该扩展应能通过允许 Wine 向驱动程序提供 32 位地址范围(BOs 可映射至该范围)来解决未来的问题。”
该问题还通过此 Mesa 工单进行了进一步讨论。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/zixun/65576.html