1. Home
  2. UE5 Compilation Errors
  3. Shader Compilation Errors
  4. Shader Error: X3701 – Intrinsic Function Not Supported

Shader Error: X3701 – Intrinsic Function Not Supported

What It Means & How to Fix It in UE5


🧠 Why You’re Seeing This Error

This error means the shader compiler tried to use an intrinsic (built-in) HLSL function that’s not supported on the current shader model, platform, or shader stage.

In UE5, this typically happens when:

  • You’re using a function only available in newer shader models
  • The function isn’t valid in the current shader type (e.g., vertex, pixel, compute)
  • A function is available in desktop shaders but not on mobile or Metal
  • You’re trying to use a compute shader–specific function in a vertex/pixel shader

💥 Example Error Message

error X3701: intrinsic function 'WaveActiveSum' not supported

🛠️ Common Shader Scenarios That Cause This

❌ Using Compute/SM6 Functions in Lower Shader Models

float value = WaveActiveSum(myValue); // ❌ Only supported in Shader Model 6+

❌ Using Platform-Specific Intrinsics on Unsupported Backends

float bits = countbits(123); // ❌ Not supported on all mobile or Metal targets

❌ Using Unavailable Functions in Vertex/Pixel Shader Stages

InterlockedAdd(sharedCounter, 1); // ❌ Only valid in compute shaders

✅ How to Fix X3701 in UE5 – Step-by-Step


✔️ 1. Check Shader Model Compatibility

Make sure the function you’re using is supported by the shader model you’re compiling for.

// Example: Wave intrinsics require Shader Model 6.0+

To use SM6 features in UE5, you need to enable the DirectX 12 RHI and target appropriate platforms.


✔️ 2. Use a Different Function for Lower SM Targets

If you’re targeting platforms like Android, iOS, or older SM5/SM4 devices, avoid advanced intrinsics.

// Replace with manual logic or SM5-compatible alternatives

✔️ 3. Add Platform/Feature Level Checks Around Intrinsics

Use #if directives to prevent unsupported code from compiling on the wrong platform:

#if PLATFORM_SUPPORTS_WAVE_INTRINSICS
float result = WaveActiveSum(value);
#else
float result = ComputeSumManually(value);
#endif

✔️ 4. Check Shader Stage Restrictions

Some intrinsics only work in specific shader stages:

IntrinsicValid In
InterlockedAddCompute only
WaveActiveSumSM6, Compute/Pixel
countbitsSM5+, not all mobile
GroupMemoryBarrierCompute only

✅ Summary: How to Fix “error X3701: intrinsic function not supported” in UE5

CauseFix
Function not supported in SM versionUpgrade to SM6 or use supported alternative
Intrinsic not allowed on platformWrap code in #if platform checks
Used in wrong shader stageMove code to valid stage (e.g., ComputeShader for Interlocked*)
Mobile/Metal platform limitationRewrite logic using SM5-friendly or custom code
Was this article helpful to you? Yes No

How can we help?