1This folder contains the files required for building the Windows Vulkan 2Runtime Installer Package. 3 4To build the Vulkan Runtime Installer: 5 6 1. Install Nullsoft Install System version 3.0b1 or greater. (Available 7 from http://nsis.sourceforge.net/Download.) 8 9 2. Install the NSIS AccessControl plug-in. (Available from 10 http://nsis.sourceforge.net/AccessControl_plug-in.) 11 12 3. Build Vulkan-LoaderAndValidationLayers as described in ../BUILD.md. 13 14 4. Edit the InstallerRT.nsi file in this folder and modify the following 15 lines to match the version of the Windows Vulkan Runtime you wish to 16 build: 17 18 !define VERSION_ABI_MAJOR 19 !define VERSION_API_MAJOR 20 !define VERSION_MINOR 21 !define VERSION_PATCH 22 !define VERSION_BUILDNO 23 !define PUBLISHER 24 25 5. Edit the CreateInstaller.sh file and replace SIGNFILE with your 26 command and necessary args for signing an executable. If you don't 27 wish to sign the uninstaller, you can comment out that line. 28 29 6. Run the CreateInstaller.sh script from a Cygwin bash command prompt. 30 The Cygwin bash shell must be running as Administrator. The Windows 31 Vulkan Runtime Installer package file will be created in this folder. 32 The name of the installer file is VulkanRT-<version>-Installer.exe. 33 34 35Some notes on the behavior of the Windows Vulkan Runtime Installer: 36 37 o When VulkanRT-<version>-Installer.exe is run on a 64-bit version 38 of Windows, it will install both the 32 and 64 bit versions of 39 the Vulkan runtime. When it is run on a 32-bit version of 40 Windows, it will install the 32 bit version of the Vulkan runtime. 41 42 o The VulkanRT-<version>-Installer.exe created with the above steps 43 can be run in silent mode by using the /S command line option when 44 invoking the installer. 45 46 o If the Vulkan Runtime is already installed on the system, 47 subsequent installs of the same version of the Vulkan Runtime 48 will be installed to the same folder to which it is was 49 previously installed. 50 51 o The Vulkan Runtime Installer uses "counted" installs. If the 52 same version of the Vulkan Runtime is installed multiple times 53 on a system, the Vulkan Runtime must be uninstalled the same 54 number of times before it is completely removed from the system. 55 56 o If the Vulkan Runtime is already installed on a system and a 57 different version is subsequently installed, both versions will 58 then co-exist on the system. The Vulkan Runtime Installer does 59 not remove prior versions of the Vulkan Runtime when a newer 60 version is installed. 61 62 o The Vulkan Runtime can be uninstalled from Control Panel -> 63 Programs and Features. It can also be uninstalled by running 64 UninstallVulkanRT.exe in the install folder. The uninstall can 65 be run in silent mode by using the /S command line option 66 when invoking the uninstaller. The location of the the 67 UninstallVulkanRT.exe can be found in the registry value 68 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\ 69 VulkanRT<version>\UninstallString 70 71 o The Vulkan Runtime Installer installs the Vulkan loader as 72 C:\Windows\System32\vulkan-<version>.dll. It then compares all 73 versions of the loader in C:\Windows\System32 that have the 74 same VERSION_ABI_MAJOR as the version being installed. It selects 75 the most recent one of these loader files and copies it to 76 C:\Windows\System32\vulkan-<VERSION_ABI_MAJOR>.dll. For example, 77 during the install of Vulkan Runtime version 2.0.1.1, the 78 following files might be present in C:\Windows\System32: 79 80 vulkan-1-1-0-2-3.dll 81 vulkan-1-2-0-1-0.dll 82 vulkan-1-2-0-1-1.dll 83 84 [Note that the first "1" in the above files is VERSION_ABI_MAJOR. 85 The other numbers identify the release version.] The installer 86 will copy the most recent one of these files (in this case 87 vulkan-1-2-0-1-1.dll) to vulkan-1.dll. This is repeated for 88 C:\Windows\SYSWOW64 on 64-bit Windows systems to set up the 89 32-bit loader. 90 91 o The Vulkan Runtime Installer returns an exit code of 0-9 92 to indicate success. All other exit codes indicate failure. 93 If the Installer returns a failure exit code, the Installer 94 will have attempted to uninstall whatever it installed before 95 it detected an error. 96 97 o The Vulkan Runtime Uninstaller returns an exit code of 0-9 98 to indicate success. An exit code of 3 indicates success, but 99 a reboot is required to complete the uninstall. All other 100 exit codes indicate failure. If the Uninstaller returns a 101 failure exit code, it will have simply exited when the failure 102 was detected and will not have attempted to do further uninstall 103 work. 104 105 o The ProductVersion of the installer executable (right click on 106 the executable, Properties, then the Details tab) can be used 107 by other installers/uninstallers to find the path to the 108 uninstaller for the Vulkan Runtime in the Windows registry. 109 This ProductVersion should always be identical to <version> in: 110 111 HKLM\Software\Microsoft\Windows\CurrentVersion\Uininstall\VulkanRT<version>\UinstalString 112