Creality Scan 4.3.2 crashes during 3D calibration on pre-Haswell CPUs (BMI1 / #UD)
TL;DR: 4.3.2 ships native plugins compiled for Haswell+. On my Ivy Bridge-E Xeon the calibration computes fine (score 98.1) and then the app dies with STATUS_ILLEGAL_INSTRUCTION on an ANDN instruction. No error dialog, no event log entry, result is lost. 3/3 attempts.
What happens
- Connect CR-Scan Raptor, run Calibrate, capture all 20 poses.
- Progress reaches “computing calibration result”.
- App closes by itself ~2 s later. No error, no dialog. Next launch says “Previous application crashed”.
Wasted three full calibration runs this way.
Why
- Exception:
0xC000001D=STATUS_ILLEGAL_INSTRUCTION(#UD) - Module:
line_laser_param_preprocessing.dllat RVA0x11348 - Instruction:
andn ecx, r10d, ebx
ANDN is BMI1, introduced with Haswell (2013). My CPU doesn’t have BMI1, so the opcode is invalid and the process is killed. The DLL has 28 ANDN instructions, all in the same TEA-style block decryption routine.
The calibration itself succeeds — the native log shows score 98.14, rms fine — then dies in the [Line Trans] stage right after refresh_linelaser_params(). So the scanner, board and algorithm are all fine.
My CPU
Intel Xeon E3-1230 V2 (Ivy Bridge-E, 2012)
CPUID leaf 7.0 EBX = 0x00000281
BMI1 : NO <-- ANDN undefined here -> #UD
AVX2 : NO
BMI2 : YES
Fully meets the Windows 11 x86-64 baseline. Just older than 2013.
It’s not only this plugin
Audited every 64-bit plugin in Plugins\x86_64:
| Plugin | BMI1 |
|---|---|
line_laser_param_preprocessing.dll |
28 ← crash |
soc_linelaser_param_processing.dll |
28 ← same routine, crashes next |
soc_depth_engine.dll |
30 |
mx6600_depth_engine.dll |
32 |
So patching just the crashing DLL won’t help — the next one has the byte-identical function.
What would fix it
Rebuild the native plugins for baseline x86-64:
MSVC : /arch:SSE2 (or drop /arch)
clang : -march=x86-64 -mtune=generic (no -mbmi/-mavx2/-march=native)
…or runtime CPUID check for BMI1 with a scalar fallback.
Also: the calibration result is thrown away silently. Persisting it (or at least showing an error) before the line-laser step would save users a lot of grief.
Ruled out
RAM (1.5/24 GB), disk (191 GB free), GPU, USB/cable, firmware (1.5.7 current), bad poses, antivirus. Same exception, same module, same RVA, 3 out of 3. No Application Error in Event Log — Crashpad eats the exception before Windows sees it.
Question
Anyone else on a pre-2013 CPU hitting this? And does anyone know if Creality is aware / planning a rebuild for baseline x86-64? Rolling back to an older version seems like the only workaround right now — happy to hear if someone found another one.
Build hashes and minidumps available if a dev wants them.