WSL显卡驱动更新带来Linux应用更强GPU支持
创始人
2026-03-25 04:27:12
0

无论你运行什么操作系统,运行非原生应用的成功率都在提升。在Windows上虚拟化运行Linux的速度将略有提升,在64位Linux和macOS上运行Windows应用的性能也是如此。

本周两种截然不同的显卡驱动栈都收到了更新,虽然它们并不相关,但都在追求同样的目标:在不同操作系统上运行非原生应用时获得更好的图形性能。

微软dxgkrnl驱动迎来重大更新

其中第一个是我们很久以前提到过的驱动。六年前,我们报道了微软的新dxgkrnl驱动,它允许在WSL2下运行的Linux访问宿主操作系统GPU的DirectX功能。微软当时非常热衷于推广这一技术,即使现在该驱动在微软文档网站上仍有专门的章节。

Dxgkrnl驱动已经将近四年没有更新了。在2020年推出后,它在2022年进行了重大重构——实际上是版本2,几个月后微软重新组织了代码以提高清晰度和便于审查,将其标记为PATCH v3。Linux内核邮件列表上的新补丁引入了该驱动的第4版。

这个版本支持纯计算GPU,用于运行那些流行的大语言模型,以及每个虚拟机支持多个虚拟GPU,并通过dma-fence实现驱动缓冲区共享。当然,DirectX本身仍是闭源的,该驱动只有在Windows上的Hyper-V下运行时才有用。

WINE推动新发展

WSL2在Windows内部运行单个真实的Linux副本,容器模拟不同的发行版。这与十年前的原始WSL形成鲜明对比。现在被称为WSL1的原始版本提供了一个翻译层,将Linux API调用转换为Windows调用,源自已经消失的Project Astoria运行时,该运行时用于在Windows Phone上运行Android应用。

实际上,WSL1与WINE的工作方式更相似,而不是WSL2。WINE也是一个翻译层,将Windows API调用转换为Linux等效调用。正如我们在2024年初报道的,WINE 9.0引入了32位到64位的转换:它可以在64位宿主操作系统上运行32位Windows二进制文件,而无需使用宿主上的任何32位子系统——这对于macOS 10.15"Catalina"以来的所有版本都是必要的。随着今年WINE 11的发布,这种集成已经非常深入,不再有wine32或wine64命令。

近年来WINE蓬勃发展,这要归功于Valve。其SteamOS 3发行版最初为Steam Deck掌上游戏机构建,使用Valve的Proton在Linux上运行Windows游戏,Proton集成在Valve Steam游戏平台的Linux客户端中。SteamOS 3表现如此出色,以至于Valve计划在今年晚些时候推出更多Steam硬件。

OpenGL仍有生命力

Valve在销售基于操作系统级模拟的消费游戏硬件方面的成功不仅推动了Linux开发,也推动了OpenGL的变化。

2024年,Codeweavers的Derek Lesho在mesa-dev邮件列表上提出了一个新问题:帮助Wine为32位Windows应用程序使用64位Mesa OGL驱动。去年,他在Mesa的GitLab上进行了更详细的解释。当WINE在64位宿主操作系统上运行32位Windows游戏时会出现这个问题。当WINE使用glMapBuffer API为游戏分配GPU内存块时,该缓冲区的地址将是64位地址——但如果地址不适合32位地址范围,WINE就无法将该地址传递给32位应用程序。

经过一些讨论,结果是一个新的OpenGL API,称为MESA_map_buffer_client_pointer。其摘要说明:此扩展允许应用程序指定应在其中映射缓冲区的指针范围。

换句话说,在分配缓冲区时,它让应用程序可以请求缓冲区在给定的地址范围内,以便32位代码可以无需缓慢的复制操作就能访问到它。

虽然距离Vulkan 1.0开放图形规范的报道已经十年了,但其前身OpenGL仍在持续开发中。即使微软已经从Windows中移除了16位应用支持,苹果也从macOS中停止了32位应用支持,WINE仍在努力让那些旧的Windows二进制文件在现代64位类Unix操作系统上良好运行。

Q&A

Q1:WSL2的dxgkrnl驱动有什么新功能?

A:dxgkrnl驱动第4版支持纯计算GPU,可用于运行大语言模型,还支持每个虚拟机使用多个虚拟GPU,并通过dma-fence实现驱动缓冲区共享。这个驱动允许WSL2下的Linux访问Windows宿主操作系统GPU的DirectX功能。

Q2:WINE如何解决32位游戏在64位系统上的内存地址问题?

A:WINE开发了新的OpenGL API叫MESA_map_buffer_client_pointer,允许应用程序指定缓冲区映射的指针范围。这样在分配GPU内存时,可以请求缓冲区在32位地址范围内,让32位代码能直接访问而无需缓慢的复制操作。

Q3:为什么说Valve推动了WINE的发展?

A:Valve的SteamOS 3使用基于WINE的Proton技术在Linux上运行Windows游戏,并集成在Steam游戏平台中。SteamOS 3在Steam Deck上的成功表现,以及Valve计划推出更多Steam硬件,都大大推动了WINE技术的发展和应用。

相关内容

热门资讯

山海邂逅悦来玥美!青岛银丰玥美... 时光淬炼初心,山海见证成长。三百余日夜匠心耕耘,青岛银丰玥美酒店与崂山为伴,与黄海为邻,融青岛山海风...
听花岛和海鱼星空达成海外AI短... 北京商报讯(记者 陶凤 王天逸)5月31日,北京商报记者获悉,海鱼星空正式与听花岛旗下海外短剧平台 ...
10分钟注册“一人公司” “A... 随着人工智能技术加速普及,“一人公司”,简称OPC,已成为创新创业的新范式。日前,北京市市场监督管理...
中信建投:AI板块波动放大,中... 智通财经APP获悉,中信建投发布研报称,本周AI板块波动显著放大,但中长期产业景气基础目前仍未动摇,...
突发变数!美联储,迎重大考验!... 全球金融市场即将迎来一系列重磅事件。 目前,市场正高度关注美联储货币政策的未来路径。根据日程安排,美...
τ0-WM:最大规模预训练的开... henry 发自 凹非寺 量子位 | 公众号 QbitAI 具身智能火了快两年,现在,终于有团队富裕...
保伦电子取得Linux环境下免... 国家知识产权局信息显示,广东保伦电子股份有限公司取得一项名为“一种Linux环境下的免密部署方法、装...
重庆这个挂在悬崖上的网红景区,... 你能想象吗?一个几年前还是渣土场、垃圾堆的地方,现在摇身一变,成了网红生态公园。种花、修栈道、搭观景...
长宁这里藏了一片“绣球花海”,... 绣球花开了,长宁的夏天也来了。眼下,长宁外环生态绿道内的绣球花已进入最佳观赏期,蓝紫、粉白、淡蓝、深...