英文:
What is the purpose of core versions of Vulkan?
问题
已发布了总共4个核心版本,推动了对必须实施的命令进行扩展,有时引入了新功能,比如1.1版本,它增加了对受保护操作的支持(在Android上支持)。但我不明白为什么需要发布这些核心版本,当扩展已经存在并且可以用来推动创新,而不需要开发人员进行重大的API和代码更改。
他们希望通过这些核心版本实现什么目标?
英文:
A total of 4 core versions were released, promoting extensions to commands that must be implemented and sometimes bringing new features, as in version 1.1, which brought support for protected operations (supported on Android). But I don't understand the need to release these core versions when the extensions already exist and can be used to drive innovation without major changes to the API and code by the developers.
What are they hoping to achieve with these core versions?
答案1
得分: 2
> 扩展已经存在
但它们并不一定存在。尽管任何特定版本的Vulkan的许多功能都来自于扩展,但并非所有功能都是如此。例如,Vulkan 1.3添加了缓冲设备地址。此外,当扩展升级为核心功能时,通常会因各种原因进行修改。
但最重要的一点是,如果你查看其中一些差异,你会注意到一些重要变化。许多它们所“更改”的内容是在扩展中是可选的,但对于特定的核心版本来说变成了必须的。
是的,当然,动态状态作为一种扩展是存在的。但在1.3中,这甚至不是你必须询问的东西。如果一个实现支持1.3,那么它就拥有动态状态。而且不是“从技术上讲它已经实现了,但我不支持任何可选部分”,因为没有可选部分。
这是很重要的。在1.3中,存在着一个基线功能,你不需要询问或在版本检查之外进行检查。通过针对1.3进行编码,你正在针对比1.2 + 一堆扩展更高的功能基线进行编码。
英文:
> the extensions already exist
But they don't necessarily exist. While many features of any particular version of Vulkan do come from extensions, they don't all do. Vulkan 1.3 added buffer device addresses, for example. Also, when promoted to core, extensions are often modified for various reasons.
But the biggest thing is something you'll notice if you look though some of those differences. Many of the things they "change" is that things that were optional in the extension become mandatory for a particular core version.
Yeah, sure, dynamic state exists as an extension. But in 1.3, it's not even something you have to ask about. If an implementation supports 1.3, then it has dynamic state. And not in the "well technically it's implemented but I don't support any of the optional parts" because there are no optional parts.
And that matters. In 1.3, there is a baseline of functionality that just exists; you don't have to ask about it or check beyond the version check. By coding against 1.3, you're coding against a higher baseline of functionality than 1.2 + a bunch of extensions.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论