Skip to content

URGE does not work without SEE 4.2 #9

@CheYoki

Description

@CheYoki

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions