在哪里可以找到Vulkan加载程序并了解Vulkan链接过程(使用Windows 10上的Vulkan SDK)

发布于 2025-01-23 02:00:26 字数 309 浏览 1 评论 0原文

为了开始学习Vulkan,我想确保我了解程序如何呼唤并实际使用Vulkan。因此,我知道启动开发人员将下载包括官方Khronos Vulkan头文件的Vulkan标头文件或Vulkan SDK软件包。我下载了SDK,在那儿找到了Vulkan标头,还将程序链接到了提供的Vulkan-1.lib。我的第一个问题是Vulkan-1.lib的实际加载程序库?还是是一种导入库,它搜索我的Windows系统中的实际Vulkan Loader,Vulkan-1.dll?那是实际上并在我的系统上找到任何vulkan驱动程序的vulkan-1.dll吗?如果是这样,我可以查看的Vulkan驱动程序的标准安装在哪里?

In order to start learning vulkan I want to make sure I understand how programs call out and actually use vulkan. So I know to start developers would download the vulkan header files or the vulkan SDK package which includes the official Khronos vulkan header files. I downloaded the SDK and in there I found the vulkan headers and I also linked my program to the provided vulkan-1.lib. My first question is is the the vulkan-1.lib the actual loader library for vulkan? Or is it an import library of sorts that searches my Windows system for the actual vulkan loader, vulkan-1.dll? And then is it the vulkan-1.dll which actually goes and finds any vulkan drivers on my system? If so, where are standard installs of vulkan drivers that I could view?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨落成白 2025-01-30 02:00:26

vulkan-1.lib 只是 vulkan-1.dll Loader的链接库。

如何找到与可安装客户端驱动程序接口的规格在这里 存档 。在Windows上,它将搜索注册表密钥HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlset \ Control \ Class \ class \ class \ {Adapter guid} \ 000X \ vulkandRivername for JSON文件,其中包含通往驱动程序的路径的路径。在我的系统上,驱动程序在c:\ Windows \ System32 \ driverstore \ filerepository \ nv_dispi.inf_amd64_ {some base64 hash}/nvoglv64.dll,代表 nvida opengl and vulkl and vulkl and code>位ICD 。它包含OpenGL和Vulkan,因为它们具有很多相似之处,最大的是它们都通过 gdi32.dll 与内核模式显示微型驱动程序。

驱动程序内部实际上没有什么可实际看到的,因为它导出的主要因素是vk_icdgetInstanceProcaddr函数,该功能被加载程序用于查询所有驱动程序的功能。加载程序将构建调度表,该表将处理呼叫所有图层和驱动程序(直到您选择了一个物理设备,它必须查询每个驱动程序)。在驱动程序中,它基本上在Vulkan中实现了每个功能,并通过vk_icdgetInstanceProcaddr函数将它们展示。如果您想了解更多有关它在做什么的信息,那么阅读 vulkan Spec 存档

vulkan-1.lib is just a linking library for the vulkan-1.dll loader.

The spec for how the loader interfaces with with the Installable Client Drivers can be found here archive. On Windows it will search the registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{Adapter GUID}\000X\VulkanDriverName for a path to JSON file which contains the path to the driver. On my system the driver is in C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_{some base64 hash}/nvoglv64.dll, which stands for the NVida OpenGL and Vulkan 64 Bit ICD. It contains both OpenGL and Vulkan because they have a lot of similarities, the biggest being that they both communicate with the Kernel Mode Display Miniport Driver through gdi32.dll.

There's not really much to actually see inside the driver, as the main thing it exports is the vk_icdGetInstanceProcAddr function which is used by the loader to query all of the drivers functions. The loader will build up dispatch tables which will handle calling all of the layers and drivers (until you've selected a physical device it has to query each of the drivers). Internally in the driver it basically implements every function in Vulkan, and exposes them through the vk_icdGetInstanceProcAddr function. If you want to learn more about what it's doing you'd be much better off reading the Vulkan Spec archive.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文