1
1
@ echo off
2
- echo OpenCL fix for AMD GPU's
2
+ cls
3
+ echo OpenCL Driver (ICD) Fix for AMD GPU's
3
4
echo By Patrick Trumpis (https://github.com/ptrumpis/OpenCL-AMD-GPU)
4
5
echo Inspired by https://stackoverflow.com/a/28407851
5
6
echo :
7
+ echo :
6
8
7
9
> nul 2 >& 1 " %SYSTEMROOT% \System32\cacls.exe" " %SYSTEMROOT% \System32\config\system" && (
8
10
goto :run
9
11
) || (
10
12
echo Execution stopped
11
- echo ==================
13
+ echo =================
12
14
echo This script requires administrator rights.
13
15
echo Please run it again as administrator.
14
16
echo You can right click the file and select 'Run as administrator'
@@ -19,35 +21,129 @@ echo:
19
21
)
20
22
21
23
:run
22
- SET ROOTKEY = HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
23
-
24
24
SETLOCAL EnableDelayedExpansion
25
25
26
- echo Now scanning your PATH for amdocl.dll files, please wait...
26
+ SET ROOTKEY64 = HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors
27
+ SET ROOTKEY32 = HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\OpenCL\Vendors
28
+
29
+ echo Currently installed OpenCL Client Driver's - 64bit
30
+ echo ==================================================
31
+ for /f " tokens=1,*" %%A in ('reg query %ROOTKEY64% ') do (
32
+ echo %%A - %%B
33
+ )
27
34
echo :
28
35
29
- for %%a in ( " %path: ; = ";" % " ) do (
30
- if " %%~a " neq " " (
31
- cd /D %%a
32
- for /r %%f in (*amdocl*dll) do (
33
- set FILE = " %%~dpnxf "
34
- echo Found: !FILE!
36
+ echo Currently installed OpenCL Client Driver's - 32bit
37
+ echo ==================================================
38
+ for /f " tokens=1,* " %%A in ('reg query %ROOTKEY32% ') do (
39
+ echo %%A - %%B
40
+ )
41
+ echo :
35
42
36
- reg query %ROOTKEY% /v !FILE! > nul 2 >& 1
43
+ echo :
44
+ echo This script will now attempt to find and install unregistered OpenCL AMD drivers from Windows (Fast Scan).
37
45
38
- if not !ERRORLEVEL! == 0 (
39
- reg add %ROOTKEY% /v !FILE! /t REG_DWORD /d 0 /f
46
+ :askUserFastScan
47
+ set " INPUT = "
48
+ set /P " INPUT = Do you want to continue? (Y/N): "
49
+ if /I " !INPUT! " == " Y" (
50
+ echo :
51
+ echo :
52
+ goto :scanFilesFast
53
+ ) else if /I " !INPUT! " == " N" (
54
+ goto :exit
55
+ ) else (
56
+ goto :askUserFastScan
57
+ )
40
58
41
- IF !ERRORLEVEL! == 0 (
42
- echo Added: !FILE!
43
- )
44
- )
45
- )
59
+ :scanFilesFast
60
+ echo Running AMD OpenCL Driver Auto Detection
61
+ echo ========================================
62
+ echo :
63
+
64
+ echo Scanning '%SYSTEMROOT% \system32' for 'amdocl*.dll' files, please wait...
65
+ echo :
66
+
67
+ cd /d %SYSTEMROOT% \system32
68
+ call :registerMissingClientDriver
69
+
70
+ echo :
71
+ echo Fast Scan complete.
72
+ echo :
73
+
74
+ echo :
75
+ echo This script will now attempt to find and install any unregistered OpenCL AMD drivers found on your computer (Full Scan).
76
+
77
+ :askUserFullScan
78
+ set " INPUT = "
79
+ set /P " INPUT = Do you want to continue? (Y/N): "
80
+ if /I " !INPUT! " == " Y" (
81
+ echo :
82
+ echo :
83
+ goto :scanFilesFull
84
+ ) else if /I " !INPUT! " == " N" (
85
+ goto :complete
86
+ ) else (
87
+ goto :askUserFullScan
88
+ )
89
+
90
+
91
+ :scanFilesFull
92
+ echo Now scanning your PATH for 'amdocl*.dll' files, please wait...
93
+ echo :
94
+
95
+ for %%A in (" %path:; =";" % " ) do (
96
+ if " %%~A " neq " " (
97
+ cd /d %%A
98
+ call :registerMissingClientDriver
46
99
)
47
100
)
48
101
102
+ echo :
103
+ echo Full Scan complete.
104
+ echo :
105
+
106
+ :complete
49
107
echo :
50
108
echo Done.
51
109
echo :
52
110
pause
111
+
112
+ :exit
53
113
exit /b 0
114
+
115
+ :registerMissingClientDriver
116
+ for /r %%f in (amdocl*dll) do (
117
+ set FILE = " %%~dpnxf "
118
+
119
+ for %%A in (amdocl.dll amdocl12cl.dll amdocl12cl64.dll amdocl32.dll amdocl64.dll) do (
120
+ if " %%~nxf " == " %%A " (
121
+ echo Found: !FILE!
122
+
123
+ set FILE_BIT = !FILE:~-7 ,-5 !
124
+
125
+ if !FILE_BIT! == 64 (
126
+ set " ROOTKEY = !ROOTKEY64! "
127
+ ) else (
128
+ set " ROOTKEY = !ROOTKEY32! "
129
+ )
130
+
131
+ reg query !ROOTKEY! > nul 2 >& 1
132
+ if !ERRORLEVEL! neq 0 (
133
+ reg add !ROOTKEY! /f
134
+ echo Added Key: !ROOTKEY!
135
+ )
136
+
137
+ reg query !ROOTKEY! /v !FILE! > nul 2 >& 1
138
+
139
+ if !ERRORLEVEL! neq 0 (
140
+ reg add !ROOTKEY! /v !FILE! /t REG_DWORD /d 0 /f > nul 2 >& 1
141
+
142
+ if !ERRORLEVEL! == 0 (
143
+ echo Installed: !FILE!
144
+ )
145
+ )
146
+ )
147
+ )
148
+ )
149
+ goto :eof
0 commit comments