UE 5.2.1 Pixel Streaming performance problem

Hey guys
We’re using pixel streaming in production.
We have a perfect performance with 5.0.3, even just out of the box without tweaking anything. Now we are experimenting with 5.2.1, where quite some stuff about pixel streaming has changes, or should I say has been improved?

But we’re facing massive troubles with performance.
We see the stream is not fluid anymore, but stalls every few seconds for quite some frames.
We see massive package losses that never have been there before, and all this even with a very strong GPU on the server.
If we set the rendering on the server not to be headless, and connect to the machine with a remote desktop tool (Teradici) we can see that the user input is arriving flawlessly, and everything is rendering perfectly smooth and without freezes, but at the same time on the pixel stream client (same host where the Teradici client is running), there are these freezes.

  1. Has anybody of you experienced something similar?
  2. Has anybody experience in debugging such symptoms?

To see the Teradici client providing an absolute flawlessly & fluid rendering at the same time as the pixel streaming client in the browser (tested several different browser, all the same) shows these freezes indicates that it can’t be a network issue or latency…

We’ve played around with measuring GPU RAM and load, added more system RAM and vCPUs (even though they never showed a bottleneck there), and checked many different nvidia GPUs. Maybe I need to add that we’re on Linux.

But the problem seems to persist everywhere. Only when we reduce the render resolution to a very very low value, it seems to get better… We also played with bandwith and quantization parameter, but it doesn’t really help.

3 Likes

Case# 00603674: Pixelstreaming issues 5.2 & 5.3 preview. I’ve reported this to epic both in UDN and via bug submission forum. I was told the fix was targeted for 5.3 release but I’ve confirmed the performance issues are still present.

1 Like

I have a ticket open with Epic where I’ve reported this behavior with DX11 & DX12 for UE5.2 and were told that UE5.2 pixelstreaming wouldn’t be fixed (the upcoming 5.3 fix wouldn’t be backported) However I pushed 5.3 preview into our testing prod env only to see the same issues (DX12 however doesn’t eventually crash on 5.3 preview/release) I’ve just updated the ticket where this was reported on UDN to let them know that UE5.3.0 release still suffers from this issue.

Thank you guys for your replies!

Seems we need to wait for a fix then.

Is there any way you can report this and put some pressure on them? Its a pretty large blocker for us so any help in this area would be awesome!

Hi guys!

I’m here to say that we do have a UDN ticket active for these performances issues (as mentioned above) and we’re in investigation. We’re gathering as much information as we can and will update you all on the state of things as stuff changes.

Thanks for your patience and cooperation!

2 Likes

I tried third person template project and met the same problem. It worked for about 30s and suddenly cpu rised a bit and gpu dropped to 20% and fps dropped to 20. For my own project, fps dropped to 3 after less than a minute as well.
The issue only exists on 5.2 and 5.3. So I moved pixelstreaming plugin from 5.1.1 to 5.2.1 and switched to webrtc 4147. Now it’s finally working again.
BTW, the default fps is unlimited in UE5 while 60 in UE4, -PixelStreamingWebRTCMaxFps doesn’t work as before.

1 Like

Any update on this? I’m currently trying to jam the 5.1 plugin into my 5.2 project and it’s not going so well.

Any chance this is fixed in 3.1.1?

I’m assuming your on source if you managed to swap webrtc? If your moving to a project based plugin there isn’t a chance you could share the steps involved?

Thanks again for the info.

The issue isn’t resolved in UE5.3.1 hotfix … Just updated the UDN thread with smoke test results this morning.

Cool. Thanks for the update.

I tried going through this in UE5.3 by bringing the 5.1 pixelstreaming plugin over to the project… however there is WEBRTC namespace macros all over the place that need to be removed as well as a few major D3D11TextureRHI methods that have seen a considerable amount of changes. Doesn’t seem feasible at this point to branch off the main codebase when we can stay put on 5.1 for now.

Yeah I gave it a shot too. There’s just too much to untangle.

Hi!
Just wanna say thank you for keeping on top of this. The UDN thread is quite frustrating to read, as it seems like the problem was not taken seriously until 5.3 launched. As it would just magically resolve itself.

The 5.3 branch on github was closed, so there might be no other hotfix release. We might have to wait until end of year for an official fix.

2 Likes

We had some success (on UE5.2.1) to get a stable experience by using PS with minimal quantization parameter (min QP) set to 20 (on Linux, not sure if this works out on Windows too). Make sure to restart the stream if you set that minimal limit after the stream is already started…

The quality is of course suffering from this setting, but at least we get a stable stream.

We would expect that PS is detecting and handling the QP on its own.
Seems this is not working correctly anymore.

1 Like

Actually there is no need to swap webrtc, just put the old version back into the folder since 5.2 removed it and PS 5.1 includes it. Then change webrtc build cs a bit.
I also removed some related plugins that has many errors after replace PS5.2 with PS5.1.

I don’t think it can be done in a project plugin. I simply modified the engine source and rebuild a mod version (but kept the build version and CL number of UE5.2).

Unfortunately, I moved all my projects to 5.2 too soon without undergoing a full test on critical PS stability.

1 Like

I guess it is marked as performance issue, which really isn’t.

WEBRTC_VERSION can be found in WebRTC.Build.cs of UE5.1. just copy those codes to the same file of 5.2

Thanks for the update @JacobZhou … we aren’t currently on source so would need to swap the friendlyname and package as a project plugin disabling the UE5.2 one without making source modifications. Looks like we will simply have to wait this out for now.

Hey Everyone,
I’m looking for some advice on pixel streaming providers? There are allot out there. At this point in time I’m trying out Vagon and Arcware RT but both seem to have problems with performing. I’m using 5.3.1 and I’m showing a realistic architectural scene.

Looking for someone I can talk with!