I’m experiencing hitches and created a stats file to understand the issue further.
If I’ve understood the stats file correctly, the cause is FDrawSceneCommand->Self. This causes the Gameplay Thread, and other threads, to stall
This is limited to a specific project, and specific content. I’ve been trying to create a small repro project. However, I essentially, have to search through the content for the issue. eg. Delete something, make a build, get the ustats data and see if the issue is still present.
We have not heard from you in several days. I am marking this as answered for tracking purposes. Once you have more information available, please post back here so we can dig deeper into this error.
This can be reproduced in the VR template on 4.13 with the HTC .
To those of you trying to hunt down performance issues and are wondering why FDrawSceneCommand:Self is taking so long, here’s my hypothesis so far:
The FDrawSceneCommand in the render thread is actually calling a blocking function (probably WaitGetPose from SteamVR) which makes it seem like it’s actually doing work (since we all are looking for a WaitForWork or Sleep type event name). Thus, it’s not actually the performance bottleneck. Think of Self as a sleep call in this instance.
On non-SteamVR games, Self doesn’t block so you are left with the normal CPU Stall event. I haven’t tried with VR setups outside of the so I’m not sure if they have the same issue, but I would wager they do since the rendering pipeline should be similar.
Additionally, when using stat unit to profile the game & render threads & GPU, you’ll always see the render thread at a very similar value to GPU & frame times, even if it’s not the bottleneck, most likely because of this issue.
What I’d like to see out of the Epic devs:
Make it clearer in the CPU
profiler that this is indeed a sleep
command, or rewrite the blocking
mechanism to sit on a separate
thread and have the render thread
stall until that thread comes back
Remove that extra time from the
stats to make it more easily
discernable to noobs like me that
the render thread isn’t causing the
bottleneck
I did some digging and have found that our developers are aware of performance issues with the and are working to address these concerns. These fixes will be made available in future releases.
I have a quick question for you that will help track down what issue it is that you are looking for. When you are experiencing the hitching described in your original post, are you seeing a gray screen or does everything just freeze?
I found that by disabling “Allow Interleaved reprojection” in the SteamVR performance settings I can get my fps up to 60 from 45 in a box map. Hopefully that helps?