You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
diff --git a/docs/changes.txt b/docs/changes.txt
|
|
index 1527da46..420c2102 100644
|
|
--- a/docs/changes.txt
|
|
+++ b/docs/changes.txt
|
|
@@ -1,3 +1,11 @@
|
|
+* changes v6.0.0 -> v6.0.x
|
|
+
|
|
+##
|
|
+## Improvements
|
|
+##
|
|
+
|
|
+- OpenCL Runtime: Reinterpret return code CL_DEVICE_NOT_FOUND from clGetDeviceIDs() as non-fatal
|
|
+
|
|
* changes v5.1.0 -> v6.0.0
|
|
|
|
##
|
|
diff --git a/src/backend.c b/src/backend.c
|
|
index 80fdbb38..7f79879f 100644
|
|
--- a/src/backend.c
|
|
+++ b/src/backend.c
|
|
@@ -5185,7 +5185,31 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|
{
|
|
event_log_error (hashcat_ctx, "clGetDeviceIDs(): %s", val2cstr_cl (CL_rc));
|
|
|
|
- return -1;
|
|
+ // Special handling for CL_DEVICE_NOT_FOUND, see: https://github.com/hashcat/hashcat/issues/2455
|
|
+
|
|
+ #define IGNORE_DEVICE_NOT_FOUND 1
|
|
+
|
|
+ if (IGNORE_DEVICE_NOT_FOUND)
|
|
+ {
|
|
+ backend_ctx_t *backend_ctx = hashcat_ctx->backend_ctx;
|
|
+
|
|
+ OCL_PTR *ocl = (OCL_PTR *) backend_ctx->ocl;
|
|
+
|
|
+ const cl_int CL_err = ocl->clGetDeviceIDs (opencl_platform, CL_DEVICE_TYPE_ALL, DEVICES_MAX, opencl_platform_devices, &opencl_platform_devices_cnt);
|
|
+
|
|
+ if (CL_err == CL_DEVICE_NOT_FOUND)
|
|
+ {
|
|
+ // we ignore this error
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ return -1;
|
|
+ }
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ return -1;
|
|
+ }
|
|
}
|
|
|
|
opencl_platforms_devices[opencl_platforms_idx] = opencl_platform_devices;
|