Description:
The application crashes on startup with 0xC000001D: Illegal Instruction on older CPUs (e.g., Intel E5200) that do not support the SSE4.2 instruction set.
Cause:
The crash occurs in Diligent::WindowsMisc::CountOneBits (Win32PlatformMisc.hpp) due to the use of the __popcnt intrinsic. This instruction (POPCNT) is not available on such CPUs. The error happens during D3D11 initialization, when creating the swapchain.
Impact:
Prevents the application from running on hardware without SSE4.2 support.
Functional Workaround:
Replacing the call to __popcnt(Val) with BasicPlatformMisc::CountOneBits(Val) in Win32PlatformMisc.hpp (third_party\DiligentCore\Platforms\Win32\interface\Win32PlatformMisc.hpp) resolves the crash. The performance impact is unknown.
Environment:
- CPU: Intel Pentium E5200
- GPU: GT 710
- API: Direct3D 11
- Compiler: Visual Studio 2022 (17.13)
It would be helpful to include a note in the README.md indicating that SSE 4.2 support is required.
This would help users with older hardware avoid confusion or unexpected crashes at startup.
Description:
The application crashes on startup with
0xC000001D: Illegal Instructionon older CPUs (e.g., Intel E5200) that do not support the SSE4.2 instruction set.Cause:
The crash occurs in
Diligent::WindowsMisc::CountOneBits(Win32PlatformMisc.hpp) due to the use of the__popcntintrinsic. This instruction (POPCNT) is not available on such CPUs. The error happens during D3D11 initialization, when creating the swapchain.Impact:
Prevents the application from running on hardware without SSE4.2 support.
Functional Workaround:
Replacing the call to
__popcnt(Val)withBasicPlatformMisc::CountOneBits(Val)inWin32PlatformMisc.hpp(third_party\DiligentCore\Platforms\Win32\interface\Win32PlatformMisc.hpp) resolves the crash. The performance impact is unknown.Environment:
It would be helpful to include a note in the README.md indicating that SSE 4.2 support is required.
This would help users with older hardware avoid confusion or unexpected crashes at startup.