# If a file name contains "=", "@", or " ", or it contains less then 5 dashes or more than\r
# 7 dashes, it wasn't installed by the Vulkan Run Time.\r
# Note that we need to use return inside of ForEach-Object is to continue with iteration.\r
- echo "Rejected $_ - bad format" >>$log\r
+ echo "ERROR: Rejected $_ - bad format" >>$log\r
return\r
}\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder object $_ is bad format" >>$log;\r
+ }\r
\r
# If the corresponding vulkaninfo is not present, it wasn't installed by the Vulkan Run Time\r
$vulkaninfo=$_ -replace ".dll",".exe"\r
$vulkaninfo=$vulkaninfo -replace "vulkan","vulkaninfo"\r
if (-not (Test-Path $vulkaninfo)) {\r
- echo "Rejected $_ - vulkaninfo not present" >>$log\r
+ echo "ERROR: Rejected $_ - vulkaninfo not present" >>$log\r
return\r
}\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder failed generating vulkaninfo exe name" >>$log;\r
+ }\r
\r
$major=$_.Split('-')[2]\r
$majorOrig=$major\r
}\r
}\r
echo "Version $majorOrig $minorOrig $patchOrig $buildnoOrig $prereleaseOrig $prebuildnoOrig" >>$log\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder during version parsing" >>$log;\r
+ }\r
\r
# Make sure fields that are supposed to be numbers are numbers\r
if (notNumeric($major)) {\r
- echo "Rejected $_ - bad major" >>$log\r
+ echo "ERROR: Rejected $_ - bad major" >>$log\r
return\r
}\r
if (notNumeric($minor)) {\r
- echo "Rejected $_ - bad minor" >>$log\r
+ echo "ERROR: Rejected $_ - bad minor" >>$log\r
return\r
}\r
if (notNumeric($patch)) {\r
- echo "Rejected $_ - bad patch" >>$log\r
+ echo "ERROR: Rejected $_ - bad patch" >>$log\r
return\r
}\r
if (notNumeric($buildno)) {\r
- echo "Rejected $_ - bad buildno" >>$log\r
+ echo "ERROR: Rejected $_ - bad buildno" >>$log\r
return\r
}\r
if (notNumeric($prebuildno)) {\r
if ($prebuildno -ne "z"*10) {\r
- echo "Rejected $_ - bad prebuildno" >>$log\r
+ echo "ERROR: Rejected $_ - bad prebuildno" >>$log\r
return\r
}\r
}\r
# Add a new element to the $VulkanDllList array\r
echo "Adding $_ to Vulkan dll list " >>$log\r
$script:VulkanDllList+="$major=$minor=$patch=$buildno=$prebuildno=$prerelease= $_ @$majorOrig@$minorOrig@$patchOrig@$buildnoOrig@$prereleaseOrig@$prebuildnoOrig@"\r
+\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder adding DLL $_ to list" >>$log;\r
+ }\r
}\r
\r
# If $VulkanDllList contains at least one element, there's at least one vulkan*.dll file.\r
# Sort the list. The most recent vulkan-*.dll will be in the last element of the list.\r
[array]::sort($script:VulkanDllList)\r
\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder sorting DLL list" >>$log;\r
+ }\r
+\r
# Put the name of the most recent vulkan-*.dll in $mrVulkanDLL.\r
# The most recent vulkanDLL is the second word in the last element of the\r
# sorted $VulkanDllList. Copy it to $vulkandll.\r
$mrVulkanDll=$script:VulkanDllList[-1].Split(' ')[1]\r
echo "copy $mrVulkanDll $vulkandll" >>$log\r
- copy $mrVulkanDll $vulkandll\r
+ Copy-Item $mrVulkanDll $vulkandll -force\r
+\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder encountered error during copy $mrVulkanDll $vulkandll" >>$log;\r
+ }\r
\r
# Copy the most recent version of vulkaninfo-<abimajor>-*.exe to vulkaninfo.exe.\r
# We create the source file name for the copy from $mrVulkanDll.\r
$mrVulkaninfo=$mrVulkanDll -replace ".dll",".exe"\r
$mrVulkaninfo=$mrVulkaninfo -replace "vulkan","vulkaninfo"\r
echo "copy $mrVulkaninfo vulkaninfo.exe" >>$log\r
- copy $mrVulkaninfo vulkaninfo.exe\r
+ Copy-Item $mrVulkaninfo vulkaninfo.exe -force\r
+\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder encountered error during copy $mrVulkaninfo vulkaninfo.exe" >>$log;\r
+ }\r
\r
# Create the name used in the registry for the SDK associated with $mrVulkanDll.\r
$major=$script:VulkanDllList[-1].Split('@')[1]\r
$sdktempname=$sdktempname + "." + $prebuildno\r
}\r
echo "sdkname = $sdktempname" >>$log\r
+\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder encountered error generating temp SDK name" >>$log;\r
+ }\r
}\r
\r
# Return to our previous folder\r
Pop-Location\r
\r
+ if (!$?) {\r
+ echo "ERROR: UpdateVulkanSysFolder popping location" >>$log;\r
+ }\r
+\r
# Only update the overall script-scope SDK name if we're told to\r
if ($writeSdkName -ne 0) {\r
$script:sdkname = $sdktempname\r
# Update the SYSWOW64 Vulkan DLLS/EXEs\r
echo "Calling UpdateVulkanSysFolder $winfolder\SYSWOW64 0" >>$log\r
UpdateVulkanSysFolder $winfolder\SYSWOW64 0\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Calling UpdateVulkanSysFolder for 64-bit OS" >>$log\r
+ }\r
}\r
\r
# Update the SYSTEM32 Vulkan DLLS/EXEs\r
echo "Calling UpdateVulkanSysFolder $winfolder\SYSTEM32 1" >>$log\r
UpdateVulkanSysFolder $winfolder\SYSTEM32 1\r
\r
+if (!$?) {\r
+ echo "ERROR: Calling UpdateVulkanSysFolder for all OS" >>$log\r
+}\r
+\r
# Create an array of vulkan sdk install dirs\r
\r
echo "Creating array of of Vulkan SDK Install dirs" >>$log\r
}\r
}\r
\r
+if (!$?) {\r
+ echo "ERROR: Failed creating array of of Vulkan SDK Install dirs" >>$log\r
+}\r
+\r
\r
# Search list of sdk install dirs for an sdk compatible with $script:sdkname.\r
# We go backwards through VulkanDllList to generate SDK names, because we want the most recent SDK.\r
}\r
}\r
}\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed searching VulkanDLLList" >>$log\r
+ }\r
}\r
\r
# Add C:\Vulkan\SDK\0.9.3 to list of SDK install dirs.\r
}\r
}\r
}\r
+\r
+if (!$?) {\r
+ echo "ERROR: Failed Removing old layer registry values from HKLM\SOFTWARE\Khronos\Vulkan\ExplicitLayers" >>$log\r
+}\r
+\r
# Remove 32-bit layer registry value 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
}\r
}\r
}\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed Removing old layer registry values from HKLM\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers" >>$log\r
+ }\r
}\r
\r
\r
if (-not (Test-Path -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers)) {\r
echo "Creating new registry key HKLM\SOFTWARE\Khronos\Vulkan\ExplicitLayers" >>$log\r
New-Item -Force -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers | out-null\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed creating HKLM\SOFTWARE\Khronos\Vulkan\ExplicitLayers" >>$log\r
+ }\r
}\r
if ($ossize -eq 64) {\r
if (-not (Test-Path -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers)) {\r
echo "Creating new registry key HKLM\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers" >>$log\r
New-Item -Force -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | out-null\r
- }\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed creating HKLM\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers" >>$log\r
+ }\r
+ }\r
}\r
\r
\r
ForEach-Object {\r
echo "Creating registry value $mrVulkanDllInstallDir\Bin\$_" >>$log\r
New-ItemProperty -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin\$_ -PropertyType DWord -Value 0 | out-null\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed creating $mrVulkanDllInstallDir\Bin\$_" >>$log\r
+ }\r
}\r
\r
# Create registry values for the WOW6432Node registry location for 32-bit items on a 64-bit OS\r
ForEach-Object {\r
echo "Creating WOW6432Node registry value $mrVulkanDllInstallDir\Bin32\$_" >>$log\r
New-ItemProperty -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin32\$_ -PropertyType DWord -Value 0 | out-null\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed creating $mrVulkanDllInstallDir\Bin32\$_" >>$log\r
+ }\r
}\r
\r
} else {\r
ForEach-Object {\r
echo "Creating registry value $mrVulkanDllInstallDir\Bin\$_" >>$log\r
New-ItemProperty -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin32\$_ -PropertyType DWord -Value 0 | out-null\r
- }\r
+\r
+ if (!$?) {\r
+ echo "ERROR: Failed creating $mrVulkanDllInstallDir\Bin\$_" >>$log\r
+ }\r
+ }\r
\r
}\r
}\r