Shader wants wave lane count of 32 but minimum wave lane count for device is 64

Hello,

we’ve recently released an update to our game that includes Metahumans and DLSS/FSR.

Since this update some of our users are reporting issues crashing due to shader compilation. These crashes appear to mainly happen on older AMD Hardware (see attachment).

With -d3ddebug and DebugView a user was able to send us the specific error message for one of these crashes (AMD Ryzen 7 5700G on integrated graphics in this case).

D3D12 ERROR: ID3D12Device::CreateComputeShader: Shader wants wave lane count of 32 but minimum wave lane count for device is 64. To check for support, check device caps via the CheckFeatureSupport() API [ STATE_CREATION ERROR #622: CREATESHADER_INVALIDBYTECODE]

We don’t know which shaders is affected here since we don’t have any logging in shipping.

Any help or advice would be appreciated.

Regards,

Max

Hello there,

I believe this may be an error in HairStrandsInterpolation.usf that sets [WaveSize(32)] without correctly checking the minimum wave size supported by the hardware. This should be fixed upstream in CL 37239582 (Git: e5984ed86f37477ec20dc8372a417a056d0ed2cb).

This may lead to grooms costing more on those platforms are WaveOps will be disabled.

I hope that helps.

Best regards,

Chris

Thank you.

I got confirmation that this fixed the issue.

Fantastic news. I’m glad that helped.

If you have any further questions, please feel free to ask. Otherwise, would you mind if I close this case for now?

Best regards,

Chris