Blender Crashing when switching to Cycles or trying to open the systems tab in the preferences
Closed, ResolvedPublic

Description

Hi,

I have searched in the forums and found quite a few similar reports, which allude to an issue with Intel OpenCL Drivers. My machine does not seem to have Intel OpenCL drivers installed.

Running Window 7 SP1x64 Enterprise
GPU - Nvidia Quadro 600, with latest drivers installed - 354.35
CPU - Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz, 3601 Mhz, 4 Core(s), 8 Logical Processor(s)
16GB RAM
Dell Precision T3600

Here is what i get from command prompt:

c:\Program Files\Blender Foundation\Blender>blender --factory-startup -d --debug-cycles
Switching to fully guarded memory allocator.
Blender 2.76 (sub 0)
Build: Sun 10/11/2015 10:11 AM Windows
argv[0] = blender-app.exe
argv[1] = --factory-startup
argv[2] = -d
argv[3] = --debug-cycles
read file

Version 272 sub 2 date unknown hash unknown

ordered
OBCube
OBLamp
OBCamera
AL lib: (EE) UpdateDeviceParams: Failed to set 44100hz, got 48000hz instead
found bundled python: c:\Program Files\Blender Foundation\Blender\2.76\python
ED_undo_push: Blender Render
I1029 17:44:29.780628 6488 device_cuda.cpp:1084] CUEW initialization succeeded
I1029 17:44:29.780628 6488 device_cuda.cpp:1086] Found precompiled kernels
I1029 17:44:29.810629 6488 device_opencl.cpp:3617] CLEW initialization succeeded.

With our IT support, we have uninstalled all NVIDIA drivers, rebooted, and did a clean install of the latest, but this did not resolve the issue.

I also tried installing blender on a colleague's workstation, with the same specs but Quadro K600 instead of 600, and it also crashes when attemting to switch to cycles or opening the systems tab in user preferences.

Details

Type
Bug

Tried the latest official build from https://builder.blender.org/download/ - blender-2.76-a15a395-win64.zip and the same issue persists.

Aaron Carlisle (Blendify) raised the priority of this task from Normal to Needs Triage.
Sergey Sharybin (sergey) triaged this task as Incomplete priority.Oct 29 2015, 7:09 PM

Can you try setting CYCLES_OPENCL_TEST environment variable to NONE before running blender and see if it makes any difference?

Something like this in the terminal will do it:

set CYCLES_OPENCL_TEST=NONE
c:\blender\blender.exe

"set CYCLES_OPENCL_TEST=NONE" works
allows cycles to work and i can also go into the system tab of user settings

could this be somehow set in a way where I wouldn't have to start through the command prompt each time?

Alternatively, could some driver issue be causing this?

I also tested Blender on a third colleague's workstation with same configuration as my PC, NVidia Quadro 600, and the same issue occurs.

Would love to hear if there is a way to execute what Sergey suggested without having to start Blender from the command prompt each time, running, set CYCLES_OPENCL_TEST=NONE

This sounds like a driver issue which was not possible to solve from our side for some older AMD cards for example. Fixing such things would require some of the devs to be able to reproduce the issue.

Meanwhile i'll blow dust form our clinfo application which does intense logging, so we can gather a bit more information from you.

In the mean time you can make a simple .bat file that goes like:

CD C:\ **Path to blender**
set CYCLES_OPENCL_TEST=NONE
start blender.exe
pause

Thanks for the .bat file definition!

Please run clinfo ftp://ftp.blender.org/sergey/clinfo/ and attach the output here.

I tried running both versions but they crash. I suspect it might be due to the fact that I have restricted admin privileges on my workstation, here at my office.

Run them from the command line and see if they give any debug prints.

It needs a .dll quick fix is to put it into the folder with blender.exe and run it from there

This comment was removed by Aaron Carlisle (Blendify).

Even from the blender folder, run from the command prompt, it still crashes. Here is the info it produces:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\dimitar.pouchnikov>"C:\Program Files\Blender Foundation\Blender\clinfo-
win64.exe"
Initializing clew...
clew initialization success!
Symbol table:
  clGetPlatformIDs: 000007FEFA821290
  clGetDeviceIDs: 000007FEFA8213E0
  clGetPlatformInfo: 000007FEFA821370
  clGetDeviceInfo: 000007FEFA821450
Getting number of platforms...

C:\Users\dimitar.pouchnikov>

I've updated the clinfo binaries with a possible fix applied. Please download the new ones from the same location and try running them from the command line.

You might also want to test latest builds from builder.blender.org. Same fix was applied there.

The latest x64 official build from builder.blender.org still crashes following the same steps.

When trying to run clinfo downloadedfrom your ftp, I get an error saying that the program can't start because MSVCP120D.dll is missing from my computer. I also tried placing clinfo into the blender root folder, and it still outputs the same error.

Seems i've compiled it with a wrong target type (debug vs. release). Uploaded new builds, please give it a try!

clinfo crashes, when i try to run it. I get the following output in command prompt:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\dimitar.pouchnikov>"C:\Program Files\Blender Foundation\Blender\clinfo-
win64.exe"
Initializing clew...
clew initialization success!
Symbol table:
  clGetPlatformIDs: 000007FEF9851290
  clGetDeviceIDs: 000007FEF98513E0
  clGetPlatformInfo: 000007FEF9851370
  clGetDeviceInfo: 000007FEF9851450
Getting number of platforms...
DEBUG: Executning statement: clGetPlatformIDs(0, NULL, &num_platforms)

That's annoying.. First ever call to OpenCL crashes..

I've uploaded clinfo-workaround binaries to ftp://ftp.blender.org/sergey/clinfo/ Mind testing them as well?

clinfo-workaround-win64.exe still crashes.

Here is the output before it crashes:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\dimitar.pouchnikov>"C:\Program Files\Blender Foundation\Blender\clinfo-
workaround-win64.exe"
Initializing clew...
clew initialization success!
Symbol table:
  clGetPlatformIDs: 000007FEF9631290
  clGetDeviceIDs: 000007FEF96313E0
  clGetPlatformInfo: 000007FEF9631370
  clGetDeviceInfo: 000007FEF9631450
Getting number of platforms using workaround...
DEBUG: Executning statement: clGetPlatformIDs(1, &platform_id, &num_platforms)

Could this be somehow related to admin rights? I am in a corporate environment without admin access to my workstation.

Hard to tell, from researching the problem there are two common issues:

  • out-of-date video drivers (which isn't the case here i think?)
  • some reports than running application as admin solves the crash

If you can run blender and/or clinfo as an administrator and report back that'd give us additional information.

I downloaded older x64 versions of Blender from http://download.blender.org/release. With 2.75, the same behavior as described above occurs. However, with 2.74 (and earlier versions), Cycles and the systems tab on the settings panel works.

I also, I have tested 2.76b on more workstations at the office with same specs as my machine, and they all continue to exhibit the same issues.

This is because in pre-2.75 versions OpenCL was disabled by default and crash happens on exact code which queries whether there are any OpenCL platforms installed on your system. What makes it more complicated, the crash happens inside the driver itself so we can only hope to find a workaorund from our side.

Did you test if running blender/clinfo from admin helps?

Hi Sergey,

I tried running clinfo and clinfo workaround with admin privileges, and both still crash. Additionally, I downloaded the latest winx64 build from builder.blender.org and running it as admin, it also crashes with cycles.

I also had a chance to test on a higher spec rendering workstation in the office with Nvidia Quadro K4200, and it also exhibits the same behavior.

I have also double checked and I have the latest GPU drivers installed.

One more thing to test. Download OpenCL.dll from ftp://ftp.blender.org/sergey/cl-icd/ and put it next to clinfo.exe and run clinfo again and see if crash still happens. This is an official ICD loader from Khronos, so in theory it should eliminate possible bugs in the drivers and/or OS.

It still crashes:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\dimitar.pouchnikov>"C:\Program Files\Blender Foundation\Blender\clinfo-
win64.exe"
Initializing clew...
clew initialization success!
Symbol table:
  clGetPlatformIDs: 000007FEF8822EE0
  clGetDeviceIDs: 000007FEF8822130
  clGetPlatformInfo: 000007FEF8822FC0
  clGetDeviceInfo: 000007FEF8822200
Getting number of platforms...
DEBUG: Executning statement: clGetPlatformIDs(0, NULL, &num_platforms)
KHR ICD trace at C:\b\icd\icd_windows.c:61: Opening key HKLM\SOFTWARE\Khronos\Op
enCL\Vendors...
KHR ICD trace at C:\b\icd\icd_windows.c:84: Reading value 0...
KHR ICD trace at C:\b\icd\icd_windows.c:100: Value IntelOpenCL64.dll found...
KHR ICD trace at C:\b\icd\icd.c:78: attempting to add vendor IntelOpenCL64.dll..
.

This seems to be something wrong with Intel OpenCL SDK by the looks of it. Things to try:

  • Remove Intel SDK if you don't need it
  • Upgrade it to the latest version from the Intel website if you need it

Let us know if something from this helped.

One more thing, i've updated OpenCL.dll files on Ftp, added some extra debugging which might help investigating what exactly is wrong with the OpenCL SDK, so if upgrading Intel OpenCL doesn't help please re-download OpenCL.dll and attach updated log.

Your suggestion to update the opencl driver runtime from Intel solved the issue. Now I can start Blender, directly and it doesn't crash.

Prior to upadting the driver, I tried running clinfo and clinfo workaround with the dll you supplied, but it still kept crashing:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\dimitar.pouchnikov>
C:\Users\dimitar.pouchnikov>"C:\Program Files\Blender Foundation\Blender\clinfo-
win64.exe"
Initializing clew...
clew initialization success!
Symbol table:
  clGetPlatformIDs: 000007FEFAEE34B0
  clGetDeviceIDs: 000007FEFAEE2700
  clGetPlatformInfo: 000007FEFAEE3590
  clGetDeviceInfo: 000007FEFAEE27D0
Getting number of platforms...
DEBUG: Executning statement: clGetPlatformIDs(0, NULL, &num_platforms)
KHR ICD trace at C:\b\icd\icd_windows.c:61: Opening key HKLM\SOFTWARE\Khronos\Op
enCL\Vendors...
KHR ICD trace at C:\b\icd\icd_windows.c:84: Reading value 0...
KHR ICD trace at C:\b\icd\icd_windows.c:100: Value IntelOpenCL64.dll found...
KHR ICD trace at C:\b\icd\icd.c:78: attempting to add vendor IntelOpenCL64.dll..
.
KHR ICD trace at C:\b\icd\icd.c:81: Attempting to load library IntelOpenCL64.dll

KHR ICD trace at C:\b\icd\icd.c:90: Attempting to get clGetExtensionFunctionAddr
ess pointer
KHR ICD trace at C:\b\icd\icd.c:99: Attempting to get clIcdGetPlatformIDsKHR poi
nter
KHR ICD trace at C:\b\icd\icd.c:108: Attempting to query the number of platforms
 available and allocate space to store them

So I updated the opencl driver.

Here is the output from clinfo after the update:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\dimitar.pouchnikov>"C:\Program Files\Blender Foundation\Blender\clinfo-
win64.exe"
Initializing clew...
clew initialization success!
Symbol table:
  clGetPlatformIDs: 000007FEFAAB34B0
  clGetDeviceIDs: 000007FEFAAB2700
  clGetPlatformInfo: 000007FEFAAB3590
  clGetDeviceInfo: 000007FEFAAB27D0
Getting number of platforms...
DEBUG: Executning statement: clGetPlatformIDs(0, NULL, &num_platforms)
KHR ICD trace at C:\b\icd\icd_windows.c:61: Opening key HKLM\SOFTWARE\Khronos\Op
enCL\Vendors...
KHR ICD trace at C:\b\icd\icd_windows.c:84: Reading value 0...
KHR ICD trace at C:\b\icd\icd_windows.c:100: Value IntelOpenCL64.dll found...
KHR ICD trace at C:\b\icd\icd.c:78: attempting to add vendor IntelOpenCL64.dll..
.
KHR ICD trace at C:\b\icd\icd.c:81: Attempting to load library IntelOpenCL64.dll

KHR ICD trace at C:\b\icd\icd.c:90: Attempting to get clGetExtensionFunctionAddr
ess pointer
KHR ICD trace at C:\b\icd\icd.c:99: Attempting to get clIcdGetPlatformIDsKHR poi
nter
KHR ICD trace at C:\b\icd\icd.c:108: Attempting to query the number of platforms
 available and allocate space to store them
KHR ICD trace at C:\b\icd\icd.c:115: Attempting to allocate memory for 1 platfor
ms
KHR ICD trace at C:\b\icd\icd.c:123: Attempting to get platforms via p_clIcdGetP
latformIDs
KHR ICD trace at C:\b\icd\icd.c:132: Iterating over the platforms
KHR ICD trace at C:\b\icd\icd.c:145: Attempting to get platform information for
platform #0
KHR ICD trace at C:\b\icd\icd.c:157: Attempt to allocate suffix size 6
KHR ICD trace at C:\b\icd\icd.c:164: Attempting to get platform information with
 proper suffix memory
KHR ICD trace at C:\b\icd\icd.c:179: Attempting to allocate memory fo vendor str
ucture
KHR ICD trace at C:\b\icd\icd.c:190: Attempting to populate vendor data
KHR ICD trace at C:\b\icd\icd.c:199: Platform handle successully stored
KHR ICD trace at C:\b\icd\icd.c:203: Vendor data is filled in
KHR ICD trace at C:\b\icd\icd.c:206: Add this vendor to the list of vendors at t
he tail
KHR ICD trace at C:\b\icd\icd.c:213: successfully added vendor IntelOpenCL64.dll
 with suffix INTEL
KHR ICD trace at C:\b\icd\icd_windows.c:84: Reading value 1...
KHR ICD trace at C:\b\icd\icd_windows.c:100: Value C:\WINDOWS\System32\nvopencl.
dll found...
KHR ICD trace at C:\b\icd\icd.c:78: attempting to add vendor C:\WINDOWS\System32
\nvopencl.dll...
KHR ICD trace at C:\b\icd\icd.c:81: Attempting to load library C:\WINDOWS\System
32\nvopencl.dll
KHR ICD trace at C:\b\icd\icd.c:90: Attempting to get clGetExtensionFunctionAddr
ess pointer
KHR ICD trace at C:\b\icd\icd.c:99: Attempting to get clIcdGetPlatformIDsKHR poi
nter
KHR ICD trace at C:\b\icd\icd.c:108: Attempting to query the number of platforms
 available and allocate space to store them
KHR ICD trace at C:\b\icd\icd.c:115: Attempting to allocate memory for 1 platfor
ms
KHR ICD trace at C:\b\icd\icd.c:123: Attempting to get platforms via p_clIcdGetP
latformIDs
KHR ICD trace at C:\b\icd\icd.c:132: Iterating over the platforms
KHR ICD trace at C:\b\icd\icd.c:145: Attempting to get platform information for
platform #0
KHR ICD trace at C:\b\icd\icd.c:157: Attempt to allocate suffix size 3
KHR ICD trace at C:\b\icd\icd.c:164: Attempting to get platform information with
 proper suffix memory
KHR ICD trace at C:\b\icd\icd.c:179: Attempting to allocate memory fo vendor str
ucture
KHR ICD trace at C:\b\icd\icd.c:190: Attempting to populate vendor data
KHR ICD trace at C:\b\icd\icd.c:199: Platform handle successully stored
KHR ICD trace at C:\b\icd\icd.c:203: Vendor data is filled in
KHR ICD trace at C:\b\icd\icd.c:206: Add this vendor to the list of vendors at t
he tail
KHR ICD trace at C:\b\icd\icd.c:213: successfully added vendor C:\WINDOWS\System
32\nvopencl.dll with suffix NV
KHR ICD trace at C:\b\icd\icd_windows.c:84: Reading value 2...
KHR ICD trace at C:\b\icd\icd_windows.c:97: Failed to read value 2, done reading
 key.
DEBUG: statement result 0
Found 2 platforms
Getting platform IDs...
DEBUG: Executning statement: clGetPlatformIDs(num_platforms, &platform_ids[0], N
ULL)
DEBUG: statement result 0
Getting platform IDs succeeded.
Getting information for platform 0
Getting number of devices for the platform...
DEBUG: Executning statement: clGetDeviceIDs(platform_ids[platform], CL_DEVICE_TY
PE_ALL, 0, NULL, &num_devices)
DEBUG: statement result 0
Found 1 devices for the platform.
Getting device IDs for the platform...
DEBUG: Executning statement: clGetDeviceIDs(platform_ids[platform], CL_DEVICE_TY
PE_ALL, num_devices, &device_ids[0], NULL)
DEBUG: statement result 0
Getting devices IDs succeeded.
Getting platform name...
DEBUG: Executning statement: clGetPlatformInfo(platform_ids[platform], CL_PLATFO
RM_NAME, sizeof(pname), pname, NULL)
DEBUG: statement result 0
Platform name is: Intel(R) OpenCL
Getting info for each of the devices...
Getting device type...
DEBUG: Executning statement: clGetDeviceInfo(device_id, CL_DEVICE_TYPE, sizeof(c
l_device_type), &device_type, NULL)
DEBUG: statement result 0
Device type is: 2
Getting device 0 name...
DEBUG: Executning statement: clGetDeviceInfo(device_id, CL_DEVICE_NAME, sizeof(n
ame), name, NULL)
DEBUG: statement result 0
Device name is:        Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz
Getting information for platform 1
Getting number of devices for the platform...
DEBUG: Executning statement: clGetDeviceIDs(platform_ids[platform], CL_DEVICE_TY
PE_ALL, 0, NULL, &num_devices)
DEBUG: statement result 0
Found 1 devices for the platform.
Getting device IDs for the platform...
DEBUG: Executning statement: clGetDeviceIDs(platform_ids[platform], CL_DEVICE_TY
PE_ALL, num_devices, &device_ids[0], NULL)
DEBUG: statement result 0
Getting devices IDs succeeded.
Getting platform name...
DEBUG: Executning statement: clGetPlatformInfo(platform_ids[platform], CL_PLATFO
RM_NAME, sizeof(pname), pname, NULL)
DEBUG: statement result 0
Platform name is: NVIDIA CUDA
Getting info for each of the devices...
Getting device type...
DEBUG: Executning statement: clGetDeviceInfo(device_id, CL_DEVICE_TYPE, sizeof(c
l_device_type), &device_type, NULL)
DEBUG: statement result 0
Device type is: 4
Getting device 0 name...
DEBUG: Executning statement: clGetDeviceInfo(device_id, CL_DEVICE_NAME, sizeof(n
ame), name, NULL)
DEBUG: statement result 0
Device name is: Quadro 600
All done!

C:\Users\dimitar.pouchnikov>

The only issue I can foresee is that in the attempt of teaching colleagues how to use Blender, I will also have to ask IT to update the openCL Driver, since I have limited admin privileges specifically for resolving this issue only.

Thanks for your help!

Sergey Sharybin (sergey) closed this task as Resolved.Nov 17 2015, 12:01 PM
Sergey Sharybin (sergey) claimed this task.

The updated library was not intended to fix the crash, it was just adding extra debug prints to see where exactly the crash happens. And it happens in the clGetPlatformIDsKHR which is coming from IntelOpenCL64.dll.

So it's purely SDK's crash which is likely fixed in it's new version :) So thanks for the report, closing it as solved now :)

I know this thread is marked as solved and closed, but I had the exact same problem for a long time as well, and wanted to add my eventually rather obvious two pennies worth.

I had installed version 2.76b when I initially bumped into this problem. I removed all user preferences, did an Intel HD graphics 4600 rollback and later reinstalled the newest version (10.18.14.4332, which I think has the most recent OpenCL drivers as well - I can't make any sense out of Intel's confusing page), and had no luck with Blender 2.75 as well. then I tried 2.74, and it was working fine (because, as I read on the forums, OpenCL was by default disabled in this build) until a reboot. I removed all prefs and config on any reinstall.

after following up on advice given in multiple threads concerning this exact same issue - using that custom made .bat file by Aaron mentioned on this page is the only thing that comes to mind right now - the two installed versions 2.76 and 2.74 were running properly during a couple of weeks, until I opened an old .blender file and set the rendering type to Cycles Render. this reintroduced the initial problem.

then I checked the DirectX diagnostic, and my dedicated GPU didn't show, because by default Windows will use the onboard video card. so I set my GTX as default preferred graphics processor, and both Cycles Render and the System tab in the user preferences are working again.

the solution for me, in short: change the graphics processor utilized by Blender from the onboard to the dedicated GPU.

OS: Windows 7 Home Premium SP1 64-bit
CPU: Intel i7-4720HQ
GPU: NVIDIA GTX 970M with driver version 361.91

I also ran into this. If you're looking for a workaround you might try the following:
Open a blender file done in Cycles. This should give you access to the system tab in user preferences. In the system tab, change the Cycles compute device from None to CUDA and ensure your graphics card is listed and checked. Save the User Settings.