|
|
|
@ -6506,6 +6506,21 @@ int backend_ctx_devices_init (hashcat_ctx_t *hashcat_ctx, const int comptime)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// workaround inc!
|
|
|
|
|
// allocating all reported local memory causes jit to fail with: SC failed. No reason given.
|
|
|
|
|
// if we limit ourself to 32k it seems to work
|
|
|
|
|
|
|
|
|
|
if (device_param->opencl_device_type & CL_DEVICE_TYPE_GPU)
|
|
|
|
|
{
|
|
|
|
|
if (device_param->opencl_platform_vendor_id == VENDOR_ID_APPLE)
|
|
|
|
|
{
|
|
|
|
|
if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD)
|
|
|
|
|
{
|
|
|
|
|
device_local_mem_size = MIN (device_local_mem_size, 32768);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
device_param->device_local_mem_size = device_local_mem_size;
|
|
|
|
|
|
|
|
|
|
// older POCL version and older LLVM versions are known to fail compiling kernels
|
|
|
|
@ -7700,7 +7715,14 @@ static u32 get_kernel_threads (const hc_device_param_t *device_param)
|
|
|
|
|
}
|
|
|
|
|
else if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD)
|
|
|
|
|
{
|
|
|
|
|
const u32 gpu_prefered_thread_count = 64;
|
|
|
|
|
u32 gpu_prefered_thread_count = 64;
|
|
|
|
|
|
|
|
|
|
if (device_param->opencl_platform_vendor_id == VENDOR_ID_APPLE)
|
|
|
|
|
{
|
|
|
|
|
// based on clinfo output: Preferred work group size multiple (kernel)
|
|
|
|
|
|
|
|
|
|
gpu_prefered_thread_count = 32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
kernel_threads_max = MIN (kernel_threads_max, gpu_prefered_thread_count);
|
|
|
|
|
}
|
|
|
|
|