Zink可以在vulkan上运行OpenGL

2021-03-28 07:05:20

这次我们很高兴与他的主要贡献者,迈克尔布鲁森克兰茨讨论Zink。什么是Zink,你可能想知道? Zink是一个与DXVK相似的项目,在概念中,您可以从一个API语言接听电话,并将它们转换为vutkan说明。对于DXVK,它是DirectX 9,10和11.对于Zink,我们正在谈论OpenGL。

现在,为什么通过vulkan支持OpenGL?毕竟,OpenGL驱动程序通常可在Linux上使用,大多数硬件应正确支持它。好吧,这是你的幸运日,因为迈克将为Zink项目提供完整的视角,它可以使用它的东西。

由于这次采访于2021年1月中旬进行,因此自从它们以来已经发生了一些事情,最相关的是GL 4.6和GLES 3.1的支持已经与平时合并为Zink。

沸腾的蒸汽:谢谢今天加入我们!首先,我想问你几个关于Zink和前图形体验的问题。你能让我们更多地了解自己以及你来自哪里吗?您对Linux的背景是什么,您是如何进入图形驱动程序的?

Michael Blumenkrantz:谢谢你在这里有我!我在Linux和Open-Source中的背景现在返回大约20年。我在夏季工作后的第一台PC上开始使用Linux。只是为了享受而滋生。回到互联网的早期休息,然后回来的游戏可能没有大量的博彩。有Loki港口的游戏。在Loki港口的一天,我扮演了很多不真实的锦标赛;那是很有趣。但我从来没有在大约10年前的编程方式中做了很多。

所有的学校,我都采取了几个课程,这不是我真正让我的生活雄心壮志。没有什么,我非常感兴趣。或者至少它并不像我期望的那么有趣。我以为它会更像是矩阵,它只是坐在键盘上的更多,所以神秘主义者不是那里。但在我从大学毕业后,所有事情都会改变,因为当我需要一份工作时,所有事情都在做。我在一个小型创业公司与大学的一些朋友有一份工作,最初只是做文件和构建系统的东西。这类演变成了更多的编程和更多的架构工作。这是虚拟化和面向网络的。从那里,我参与了启蒙项目,因为我已经使用了这一点,因为我开始使用Linux。

这是那个或fluxbox,fluxbox很棒,但启示的启示有一个独特的能力在多个显示器上具有未同步的虚拟桌面,并且在更改显示屏上更改虚拟桌面时没有中断视频播放。这是当时很重要的。所以我对启蒙的工作进展了,我继续在那里融合东西并改善事情。然后三星敲了。所以我向英国搬到了那里在搬回美国的时候工作,为伊布拉姆哈德德的人的伟大领导地位工作,为伊布拉姆·哈德德(Guy Martin,Brian Warner)工作。这是一个令人难以置信的经历。我必须用很多非常聪明的人工作,比我更聪明,更好的工程师 - 这肯定 - 因为我仍然没有CS学位,而且我就像我走的那样。

所以三星,不幸的是,由于许多因素,甚至才结束,其中最少是越来越多的Covid形势。这让我进入了一个我需要重新考虑我在工程生活中所做的事情的位置。直到那时我一直在桌面上工作,图形层很高兴堆栈所以说话,所以我想到了自己,“好吧,我会看看一些较低的东西,看看怎么样。”这让我变成了图形。我得到了丹尼尔石头,一个令人难以置信的人,令人难以置信的工程师的推荐,他说“你为什么不检查Zink吗?有很多工作可以在那里完成,你会学到很多“而且我做到了。这让我沿着低级图形的道路和我在这里。

迈克:我在梅萨做了几个补丁。自从我有英特尔硬件,我将来自I965司机的几个特征从I965司机移植到英特尔,我在英特尔认识了一些人。所以我沿着那里的一点点指导。我联系了对镓的YUV平面支持,只在过程中打破了一些事情。但我不会说我甚至有任何远程接近对低级图形的深度理解。可能是我在API方面所做的最多的是,几年前我写了Compiz插件,只是看看我是否可以做这项工作。我没事。

BS:所以你实际上必须第一次深入研究vulkan和OpenGL?

迈克:是的,我在学习两者的同时,这是一个有趣的经历。

迈克:我并不真正想到我进入的东西,所以说话,这是一种放大的,因为我在zink开展做的第一件事是处理流或转换反馈,这司机中可能是屁股中最大的痛苦。 Jason Ekstrand有一个冗长的博客文章,为什么改变反馈是可怕的,为什么它需要在vulkan中存在。它的缺点:它需要完全以与openGL和期望能够这样做的应用程序的兼容性存在。

BS:好的,所以实际上存在vulkan某种功能,使得可以做OpenGL?

迈克:在这种意义上,它使得可以模拟不直接支持的OpenGL的一些使用情况 - 是的。还有一些地区还有尚未覆盖,而Khronos和Vulkan社区则非常努力地平滑,并让所有工作都有工作。

BS:在这个阶段,你会对zink说什么,如果你要向一个更加行提门的观众解释zink,你会如何形容它,你会说它能够在这个阶段实现什么?

迈克:当然。因此,所有硬件都在这一点上几乎在图形API中选择了很少的选择。如果您在Windows上,您通常会支持DirectX。也许您支持OpenGL,也可以缓解您的移植到其他平台。但是,如果您在其他平台上,您大多支持OpenGL,因为这是事实上的标准。近年来随着其他图形API的出现而改变,如潺潺声。

有更新版本的DirectX仍然是特定于Windows的,但OpenGL有点消失,并且较新的硬件不一定能够由任何能够执行OpenGL的驱动程序支持。此时,有必要具有某种层的层,允许硬件与旧应用程序一起工作。例如,游戏仿真器等东西,甚至是MINECRAFT。 Zink旨在填补那个空隙。

BS:你会说现在已经实现了这一角色吗?或者在它可以用作完全替代之前还有一些方法吗?

迈克:我不认为任何人都将尽快使用它作为完全替代;还有很多工作要做。它的运送与GL 4.1支持。我已经完成了4.6和Gles 3.2的一切努力,并且很多绩效工作。在降落之前还有很多工作要做。我有很大的支持来自Collabora的Erik Faye-Lund,并在帮助我的过程中,以及Mesa社区的其他人。 Zink已经在某些地方使用了相当高的地方,让我们说几乎生产,并且已经有点填补了空虚。有些社区成员在Zink项目中完成的工作,以使其在麦斯斯工作,因为Apple有限的OpenGL支持。有人在那里的生产环境中部署它。在某些情况下,我会说它准备被用作替代品。但对于一般游戏,还有一些方法可以走。

BS:你提到了苹果。所以对于Apple,它通过Moltenvk工作还是您有直接的金属实施?

迈克:它位于Moltenvk之上,我们有伟大的邓肯霍普金斯在那最后工作。

BS:它也在Windows上工作,也可以在此阶段有任何类型的Linux规范吗?

迈克:目前我们只是针对Linux和相关平台。我想看到它在Windows上在某些时候在Windows上运行,只有来自个人好奇心 - 我可以做这项工作吗?这将是一个整洁的东西,但这就是那么远。

迈克:有明显的部分:我实际上没有尝试过。所以我不知道是什么缺失,但超越了,zink目前没有任何类型的窗口系统集成,这意味着例如,如果您在Xorg上运行,则会有很多黑客转到同步显示服务器以避免巨大的撕裂。亚当杰克逊在工作中很难。我想我们会很快就会看到这一点,这也应该减少有关其他平台支持的许多不确定性。

迈克:Zink已经在Mesa,所以这将基本上从现在到那里生活。 Zink现在已经在Mesa释放了几年。 MESA支持的目前运输GL版本是4.1。

BS:您的计划是在未来或向上的4.6或向上?

迈克:这是正确的。我已经完成了这项工作,我们正在努力进入一个可以在MESA发货的状态。

BS:几个月前,您宣布您正在由阀门赞助。你能让我们知道这种情况如何发生这种情况吗?

迈克:故事并没有真正的吨。我一直在Zink X Xink可能六到八个月,我被斯瓦尔联系,他们说他们喜欢我所做的工作,他们真的很喜欢我为低级图形方面展示的激情开源社区,他们有兴趣赞助我和我工作的事情。不一定是他们作为一个项目赞助Zink,但我恰好在Zink上工作。

BS:阀门整形是以任何方式所做的还是简单地支持你的方式?

迈克:我会说这主要是不是我。阀门提供了许多在备受规格移动的东西中提供了很大的支持,让一致性测试移动。还有一个社区,其他开发人员的社区,他们以vall为单一的能力为我所做的,我可以在Zink和其他相关内容的工作过程中提供卓越的信息和支持。

BS:假设情景:让我们说一天你达到4.6或以上的规格,您将如何考虑在该阶段完成的工作?

迈克:这是一个棘手的问题。 4.6并不像规格结束。还有一些其他扩展是播放在OpenGL中运行的顶级游戏所必需的,例如,2016年的DOOM 2016,如果您愿意,这是Zink的最终老板。 [...]。我会理想地说,如果我能够获得zink来支持从大多数应用程序中播放大多数游戏所必需的所有关键扩展和OpenGL功能,并且在10%的原生表现中我会说那将是当然足够好。

BS:当您说本机性能时,您是否指的是此类游戏或其他东西可用的原始OpenGL客户端?

迈克:我谈到了一个原生OpenGL驱动程序。如果您在英特尔平台上,您可以拥有经典的I965驱动程序或基于镓的Iris驱动程序,因此如果我能够在那些司机的一定程度的性能范围内,那么这绝对是我想要的。

BS:您认为甚至可能超出那些OpenGL驱动程序的性能,因为vulkan实现可以在您的管理硬件中带来一些额外的好处?

迈克:我可以给出的最好的例子是我继续赶上Radeonsi司机的持续战斗,这是我遇到的最快的OpenGL司机,因为它有点推动镓的发展,从而提起实施所有这些新的apis允许它是最快的。在这种意义上,我不会指望我真的能够赶上这样的司机,因为真的没有以重要的方式改善余地。

相比之下,有一些驱动程序,我不会在这里命名,这不太优化,或者不是以这样的方式编写的,可以利用更多现代的CPU架构和并行化。所以对于那些司机来说,我希望我能超过这种表现。

BS:你认为Zink需要多长时间才能到达你可以支持一个标题的舞台,比如2016年的Doom你提前提到?

迈克:老实说,我无法推测在那种东西广泛使用之前它会有多长时间。这是一种我可能会说这是一年的那些东西,但随后从现在开始的一年,我已经工作了很大,发现了一些关键问题,这意味着其他一切都破坏了或那种东西。驱动程序开发非常棘手,特别是当您打算支持多个平台时。 Zink存在不幸的不幸,必须支持所有vulkan司机。例如,英特尔可能很好的事情可能无法在另一个平台上很好地工作。每次提升新的平台测试,我都会找到所有这些问题。也许我并不完全遵循我需要的规范。所以让我回到很多次,回归修复回归。所以在这一点上,我说要努力提供任何类型的估计是一点令人遗憾的是。

BS:Vulkan规范的演变是否会对Zink的工作产生任何回归?

迈克:不经常。规范本身改变对驱动程序没有真正的影响,因为这是驾驶员应该做什么的语言。有了这一说,有几个案例由于我正在测试的潜在的vutkan驱动程序的变化,zink的测试已经回归。 Zink已经为这些司机的开发人员成为一件好事,因为他们能够抓住那些vulkan的一致性测试套件没有覆盖的人,因为它们是奇怪的角落案例。

BS:您认为未来将有一天,GPU制造商或供应商实际停止提供OpenGL驱动程序吗?

迈克:我真的不知道答案。我知道公司对于OpenGL的公司仍有很大的支持,但如果只是因为游戏开发人员所在的地方,那么更多的工作进入了更新的API。此时我不认为任何AAA工作室正在编写新的OpenGL为基础的游戏。

BS:OpenGL仍然用于商业应用程序也是如此......

迈克:绝对,是的,所以这肯定是一个因素。但重要的是要记住,OpenGL比其他API更缓慢地发展得多。代码库中不一定不一定。那里需要得到任何重要和新的东西。它会影响开发资源的分配方式。

BS:除了您之前提到的Doom(2016)之外,您还期待着工作的一项游戏吗?

迈克:我有个人要求试图获得新的Wolfenstein游戏运行。因此,这可能是我的下一个目标,因为这一直是等待的一段时间。除此之外,只是从它的那种挑战方面,yuzu模拟器......是一个艰难的。我实际上没有任何能力测试yuzu,所以我不能说不,但在他们的OpenGL实现中,他们使用优步着色器,这对OpenGL限制有一些非常有趣的使用。

BS:让我们在将来说你完全用Zink完成:你设法实现了大多数规格,你有可接受的还是很好的表现,你对下一步努力工作是什么?

迈克:这是一个很好的问题。有很多可能有趣的领域。有像DXVK和Proton的东西:那些是巨大的项目。有很多空间,不一定是他们需要大量的工作,但他们是广泛的项目。还有其他人有贡献的空间,所以我有一些兴趣。还有vulkan司机自己。总有可能在那里获得更多工作。一般有葡萄酒的东西。肯定是Linux-Gaming相关和与图形相关的项目的广泛范围。

这是我们与迈克讨论的结束。 Zink当然开辟了一些令人兴奋的可能性,你肯定会继续听到它。我们希望你喜欢这次采访!我们也将在下周稍后发布此对话的音频版本。

如果您有兴趣了解有关Zink的更多信息,您还可以在FOSDem 2020的Erik Faye-Lund捕获以下演示(尽管旧的):

BoIningSteam让您免费访问我们的内容,但写作文章是一个不断的投资。我们不使用广告或赞助,帮助我们通过帕勒顿或利巴妥捐赠,使我们能够通过Patreon或LiberaPay进行可持续的活动。您可以按照我们的时事通讯,我们的RSS Feed,我们的Mastodon型材或我们的推特饲料进行我们所做的事情。我们还有Peertube,YouTube和LBry频道。如果你喜欢聊天,你也可以在#boilingsteam:matrix.org上找到我们。 (什么是矩阵?)