From PixelStreaming Source code (engine plugin) :
In case link is broken slightly edited version (due to fact that e source code needs registered github account) here :
FString RHIName = GDynamicRHI->GetName();
if (RHIName == TEXT("Vulkan")) // Vulkan is crossplateform
{
if (IsRHIDeviceAMD())
// Vulkan + AMD
else if (IsRHIDeviceNVIDIA())
// Vulkan + Nvidia
}
#if PLATFORM_WINDOWS // needed because non-windows systems dont have dx libs and headers
else if (RHIName == TEXT("D3D11"))
{
if (IsRHIDeviceAMD())
// DX11+ AMD
else if (IsRHIDeviceNVIDIA())
// DX11+ Nvidia
}
else if (RHIName == TEXT("D3D12"))
{
if (IsRHIDeviceAMD())
// DX12+ AMD
else if (IsRHIDeviceNVIDIA())
// DX12+ Nvidia
}
#endif
UE_LOG(LogPixelStreaming, Error, TEXT("Current RHI %s is not supported in Pixel Streaming"), *RHIName);
return nullptr;
}
The nvidia / amd is not mandatory ofc but is used here for pixel streaming gpu-supported hardware video encoding and is also an interesting available feature !
Hope it helps !