Vulkan的兼容性在Vulkan规范中列出,并且基于版本号:XYZ
Z
是“补丁”数字,主要表示对规范的编辑性更改或次要行为更改。不允许基于修补程序号更改面向用户的API。可以与XY(Z-1)一起使用的代码必须与XYZ一起使用,反之亦然。因此,如果SDK可以加载Vulkan版本XY,则可以Z
为该版本中的每个版本加载。
Y
是次要版本号,表示对API的向后兼容更改。也就是说,如果您的代码使用X.(Y-1),那么它也将使用XY。但是,相反的情况不一定成立。所以,如果你正在使用的SDK装载机适用于1.0版本,它应该是功能性为1.1及以上版本。
显然,如果您使用1.0加载程序,则无法使用1.1+中添加的新API。
X
代表主要版本号。如果情况发生变化,则所有投注均关闭。可以删除,修改API,更改验证规则等。因此,如果您使用的是1.3版的SDK加载程序,而2.0版发布了,则不能保证1.3加载程序会加载它。最重要的是,即使确实加载正确,也永远不要使用它。
不应期望针对一个主要版本的Vulkan编写的应用程序可以在另一个主要版本上工作。
上面解释了Vulkan规范与用户之间的合同,无论是谁。如果您使用的是SDK,则SDK位于您和实施之间。它可以在上面添加规则。
但是,从文档中,我看不到任何证据表明加载程序试图阻止从先前的API版本加载更高版本的次要API版本。因此看来,SDK加载程序遵循Vulkan规范。如果加载程序是为Vulkan 1.1构建的,则它应适用于任何2.0版之前的Vulkan实施。此时,加载程序可能无法工作,因为不存在依赖它的API。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句