Installer: Added changes to detect 32-bit layers on 64-bit system.
authorMark Young <marky@lunarg.com>
Tue, 19 Jan 2016 22:29:34 +0000 (15:29 -0700)
committerMark Young <marky@lunarg.com>
Mon, 25 Jan 2016 23:04:01 +0000 (16:04 -0700)
Added changes to detect 32-bit layers on 64-bit system.

windowsRuntimeInstaller/ConfigLayersAndVulkanDLL.ps1

index 13a7b4c..e392cc7 100644 (file)
@@ -181,8 +181,7 @@ function UpdateVulkanSysFolder($dir)
 }\r
 \r
 # We only care about SYSWOW64 if we're targeting a 64-bit OS\r
-if ($ossize -eq 64)\r
-{\r
+if ($ossize -eq 64) {\r
     # Update the SYSWOW64 Vulkan DLLS/EXEs\r
     UpdateVulkanSysFolder c:\WINDOWS\SYSWOW64\r
 }\r
@@ -233,6 +232,18 @@ Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLaye
           }\r
        }\r
    }\r
+# Remove 32-bit layer registry entries if we're targeting a 64-bit OS\r
+if ($ossize -eq 64) {\r
+   Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | Select-Object -ExpandProperty Property |\r
+      ForEach-Object {\r
+          $regval=$_\r
+          ForEach ($sdkdir in $VulkanSdkDirs) {\r
+             if ($regval -like "$sdkdir\*.json") {\r
+                 Remove-ItemProperty -ErrorAction Ignore -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval\r
+             }\r
+          }\r
+      }\r
+}\r
 \r
 \r
 # Create layer registry entries associated with Vulkan SDK from which $mrVulkanDll is from\r
@@ -243,4 +254,13 @@ if ($mrVulkanDllInstallDir -ne "") {
        ForEach-Object {\r
            New-ItemProperty -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin\$_ -PropertyType DWord -Value 0 | out-null\r
        }\r
+\r
+    # Create registry entires for the WOW6432Node registry only if we're targeting a 64-bit OS\r
+    if ($ossize -eq 64) {\r
+        New-Item -Force -ErrorAction Ignore -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | out-null\r
+        Get-ChildItem $mrVulkanDllInstallDir\Bin32 -Filter *json |\r
+           ForEach-Object {\r
+               New-ItemProperty -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin\$_ -PropertyType DWord -Value 0 | out-null\r
+           }\r
+    }\r
 }\r