在即将发布的 Firefox 94正式版本中,对Linux用户启用EGL后端。 这将提高WebGL性能,减少资源消耗并使开发人员的生活更轻松。
为了像将像X11或Wayland等窗口系统一样实现硬件加速OpenGL API,需要一个将它们组合在一起的接口。在X11 OpenGL平台,大多数程序使用GLX,而其继任者EGL则更多用于Wayland、Android和嵌入式领域。虽然EGL与GLX相比有一些优势,理论上也可以在X11上使用,但并还没有并广泛地采纳,归其原因:
游戏和类似应用程序几乎无法从迁移中受益。
应用程序和工具包通常不会首先在X11上启用硬件加速渲染。
由于采用缓慢,X11 EGL实现仍然存在缺陷和不完整。
火狐浏览器是一款在许多领域都从硬件加速中受益匪浅的应用程序。然而,直到最近,其默认设置依然是软件渲染。直到今年,火狐新图形渲染引擎Webrender终于在Linux上被广泛启用。WebRender是一个基于GPU的2D渲染引擎,Rust语言编写。
使用新引擎后,在安全性、性能和功能上都有极大改善:
OpenGL 驱动程序变得更好;
Xorg DDX 驱动程序变得更好(例如“模式设置”驱动程序成为英特尔的标准);
复合桌面变得更加普遍;
与旧的OpenGL层后端相比,Webrender使硬件加速更加理想;
Wayland、DMABUF等新技术应运而生。
火狐在实现Wayland硬件加速支持时,无法直接重GLX代码,于是使用了安卓EGL代码。这就是EGL引擎的来源。
一步一步地,对EGL/Wayland后端进行了一些改进,这些改进也对其他平台产生了影响:
为了提高WebGL性能并实现高效的硬件视频解码,实现了通过DMABUF零拷贝GPU 缓冲区共享。这在EGL上比在GLX上容易得多。虽然火狐确实为X11提供了类似的缓冲区共享实现(使用 Xrender),但该实现从来都不够稳定,无法默认开启。
改进了EGL后端,不仅支持OpenGL ES,还支持“桌面”OpenGL,确保它不落后于GLX后端。
扩展DMABUF和VAAPI支持X11 。
GPU检测改进,确保无需Xwayland存在,使其不再需要 GLX。
越来越多的代码在Wayland、X11/EGL和Android之间共享。这提高了代码质量,增加了花在功能和错误上的可用时间,减少了维护负担。
去年,越来越多的用户发现在X11上使用EGL的可能性——可能是因为它是硬件视频解码的先决条件。从 Firefox 94 开始,使用Mesa驱动程序>=21的用户将默认启用。专有Nvidia驱动程序的用户将需要等待一段时间,预计能够在470系列以后启用EGL。 DMABUF支持(因此更好的WebGL性能)需要GBM支持,并且将仅限于495系列以后。
那么用户究竟能期待,主要有:
改进了WebGL性能。 由于DMABUF零拷贝缓冲区共享,WebGL可以在沙盒中完成,无需往返系统内存。WebGL不仅用于游戏等明显的地方,而且还以更微妙的方式使用,例如在谷歌地图上。
降低功耗。对于部分渲染,如果仅更改了小部分内容,就无需重新绘制整个窗口。比如,网站上或加载选项卡时的小动画。
更少的漏洞。与 GLX 相比,EGL 更现代,更适合复杂的硬件加速桌面应用程序并在更多平台上使用。
默认情况下,支持硬件视频解码。对于大多数用户来说,现在应该只是一个偏好。
页面更新:2024-06-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号