Observed in Unreal Engine 5.4 and 5.5; I haven't tested older versions to see how they differ.
When -RHIValidation is passed to the engine, the GDynamicRHI global variable points at a proxy RHI implementation.
However, the XeSS Unreal Plugin in several places tries to static_cast<...>(GDynamicRHI), which produces an invalid result and crashes when -RHIValidation is in-use.
Instead, I believe it is safe all the way back to 4.27 to use static_cast<...>(GDynamicRHI->GetNonValidationRHI()).
Observed in Unreal Engine 5.4 and 5.5; I haven't tested older versions to see how they differ.
When
-RHIValidationis passed to the engine, theGDynamicRHIglobal variable points at a proxy RHI implementation.However, the XeSS Unreal Plugin in several places tries to
static_cast<...>(GDynamicRHI), which produces an invalid result and crashes when-RHIValidationis in-use.Instead, I believe it is safe all the way back to 4.27 to use
static_cast<...>(GDynamicRHI->GetNonValidationRHI()).