1
1
@ echo off
2
- setlocal EnableDelayedExpansion
2
+ setlocal EnableDelayedExpansion enableextensions
3
3
set OCL_RT_DIR = %~dp0
4
4
5
5
echo ###
@@ -12,28 +12,25 @@ IF NOT EXIST %OCL_RT_ENTRY_LIB% (
12
12
set OCL_RT_ENTRY_LIB = %OCL_RT_DIR% intelocl64_emu.dll
13
13
)
14
14
15
- IF " %OCL_ICD_FILENAMES% " == " " (
16
- set EXTENDEXISTING = N
17
- ) else (
15
+ IF NOT " %OCL_ICD_FILENAMES% " == " " (
18
16
echo OCL_ICD_FILENAMES is present and contains %OCL_ICD_FILENAMES%
19
17
:USERINPUT
20
- set /P " EXTENDEXISTING = Should the OpenCL RT extend existing configuration (Y/N): "
21
- )
22
- IF " %EXTENDEXISTING% " == " N" (
23
- echo Clean up previous configuration
24
- set OCL_ICD_FILENAMES = %OCL_RT_ENTRY_LIB%
25
- ) else (
26
- IF " %EXTENDEXISTING% " == " Y" (
27
-
28
- set OCL_ICD_FILENAMES = %OCL_ICD_FILENAMES% ;%OCL_RT_ENTRY_LIB%
29
- echo Extend previous configuration to %OCL_ICD_FILENAMES% ;%OCL_RT_ENTRY_LIB%
18
+ set /P " CLEAREXISTING = Should the OCL_ICD_FILENAMES be removed (Y/N): "
19
+ IF " !CLEAREXISTING! " == " N" (
20
+ echo Existing configuration is going to be preserved
30
21
) else (
31
- echo WARNING: Incorrect input %EXTENDEXISTING% . Only Y and N are allowed.
32
- goto USERINPUT
22
+ IF " !CLEAREXISTING! " == " Y" (
23
+ echo Clean up previous configuration
24
+ REG DELETE " HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v OCL_ICD_FILENAMES
25
+ echo Execute `set OCL_ICD_FILENAMES=` to remove variable from the current console
26
+
27
+ ) else (
28
+ echo WARNING: Incorrect input !CLEAREXISTING! . Only Y and N are allowed.
29
+ goto USERINPUT
30
+ )
33
31
)
34
32
)
35
33
36
-
37
34
set SYSTEM_OCL_ICD_LOADER = C:\Windows\System32\OpenCL.dll
38
35
set NEW_OCL_ICD_LOADER = %OCL_RT_DIR% \OpenCL.dll
39
36
set INSTALL_ERRORS = 0
@@ -103,11 +100,13 @@ IF %NEED_OPENCL_UPGRADE% == True (
103
100
104
101
echo .
105
102
echo ###
106
- echo ### 3. Set the environment variable OCL_ICD_FILENAMES to %OCL_ICD_FILENAMES%
103
+ echo ### 3. Configure ICD registry records
107
104
echo ###
108
- REG ADD " HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v OCL_ICD_FILENAMES /d " %OCL_ICD_FILENAMES% "
105
+ echo Deleting all obsolete registry keys
106
+ REG DELETE " HKLM\SOFTWARE\Khronos\OpenCL\Vendors" /va
107
+ REG ADD " HKLM\SOFTWARE\Khronos\OpenCL\Vendors" /f /v %OCL_RT_ENTRY_LIB% /t REG_DWORD /d " 0"
109
108
IF ERRORLEVEL 1 (
110
- echo !!! Cannot set the environment variable OCL_ICD_FILENAMES
109
+ echo !!! Cannot set ICD registry key
111
110
set INSTALL_ERRORS = 1
112
111
)
113
112
@@ -165,7 +164,7 @@ IF %INSTALL_ERRORS% == 1 (
165
164
echo See recommendations printed above and perform the following actions manually:
166
165
echo 1. Save %SYSTEM_OCL_ICD_LOADER% to %SYSTEM_OCL_ICD_LOADER% .%SYSTEM_OPENCL_VER%
167
166
echo 2. Copy %NEW_OCL_ICD_LOADER% to %SYSTEM_OCL_ICD_LOADER%
168
- echo 3. Add/set the environment variable OCL_ICD_FILENAMES to %OCL_RT_ENTRY_LIB%
167
+ echo 3. Add/update registry string value in Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors\ %OCL_RT_ENTRY_LIB% containing 0
169
168
echo 4. Copy TBB libraries or create symbolic links in %OCL_RT_DIR% tbb.
170
169
echo 5. Add/set the environment variable PATH to %OCL_RT_DIR% tbb
171
170
echo Or try running this batch file as Administrator.
0 commit comments