Vulkan Runtime Packaging on Windows NT Systems

Vulkan Runtime Packaging on Windows NT Systems

Intel currently ships Vulkan Runtime, a.k.a. VulkanRT-Installer.exe within its driver package, referenced and included in various files, both in igdlh.cat and in igdlh64.inf, shipped with driver version 15.45.19.4678. Wherever a driver installation proceeds from .cat and .inf files, which happens both to setup.exe installation and to DISM with /Add-Driver, VulkanRT-Installer.exe is copied to Windows Driver Store, which your co-installer igxpco64.dll calls in silent mode. This post serves to bring to light problems of installation process mentioned before and to provide a backward-compatible remedy to these problems.

Both nVidia and AMD, at this time, ship their own Vulkan Runtime files within their respective driver packages in a manner not dissimilar to that of Intel, which entails, on a hypothetical system with multiple GPU packages, each from a different vendor, a collision of Vulkan Runtime files. An extension standardized in one Vulkan version would thus become unavailable when another GPU driver overwrites the Runtime. To examine the issue in a more realistic context, simply imagine a notebook computer with both Intel and AMD GPU packages, with either Enduro or Microsoft Hybrid Graphics switched on.

To eliminate potential collision between Vulkan Runtime files from different driver packages, a higher authority has to step in to deal with Vulkan Runtime installation on behalf of GPU vendors. However, this is unlikely, since Microsoft, authority would-be, runs a rival interface of its own. And yet, relegating duties of maintaining Vulkan Runtime to system administrators is not an option either, since such practice hurts out-of-box user experience.

A compromise is then in order. GPU vendors should still ship Vulkan Runtime, however, in a different manner. Instead of imposing VulkanRT-Installer.exe on the driver package, which is monolithic and hard to modify thanks in part to WHQL, Intel should instead focus on providing Vulkan Runtime as a default installation option that resides outside the driver tree that is Graphics, much akin to DisplayAudio. Let Intel's setup.exe handle Vulkan as a default option, which users can switch off. Now that VulkanRT-Installer is removed from the driver package proper and is now handled by setup.exe instead, this allows enterprise customers, who provision Windows NT images to their computers, to ship a Vulkan Runtime of their own choice.

Shipping colliding versions of Vulkan Runtime brings only further frustration and market fragmentation, all of which serve to impair both user and developer experience in a manner that will only fuel the popularity of competing interfaces such as Direct3D 12. Do consider also extreme use cases such as Windows 10 S and Windows 10 IoT, where Microsoft primed Direct3D to succeed.

Please, Intel, move Vulkan Runtime out of the driver-exclusive tree.

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi,

I have passed on your feedback to the driver team. Thanks for letting us know. 

 

Hi,

The mechanism for avoiding collision between different Vulkan runtimes is built into the VulkanRT-Installer.exe. The installer detect all previous versions installed on the system, ensuring only DLLs from most recent version are in use.

Thus any application wanting to override the VulkanRT shipped by the driver can install an update.

At this time It is not feasible to move VulkanRT from INF device driver package, as some users are getting the driver this way – skipping the driver installer.

Leave a Comment

Please sign in to add a comment. Not a member? Join today