49 lines
2.6 KiB
Plaintext
49 lines
2.6 KiB
Plaintext
========== Summary ==========
|
|
ConcertInsights is a toolchain for tracing steps accross multiple machines in distributed protocols.
|
|
- This adds a status bar entry in the bottom right of the editor to start a synchronized trace (ConcertInsightsCore implements shared logic)
|
|
- Each machine will generate its own .utrace file (ConcertInsightsClient and ConcertInsightsServer listen for synchronized trace requests)
|
|
- ConcertInsightsVisualizer aggregated multiple .utrace files and correlates the machine CPU times
|
|
|
|
This toolchain is highly experimental. Issues:
|
|
- Time correlation is too imprecise with a fault range of 400 ms.
|
|
This is because the FDateTime::UtcNow seems to be accurate only within about 400ms accross machines.
|
|
To fix this, we should consider a proper time synchronization protocol, e.g. PTP.
|
|
|
|
========== Set-up ==========
|
|
To try this out, the minimum set-up is:
|
|
- In your .uproject file, to Plugins section add
|
|
{
|
|
"Name": "MultiUserClient",
|
|
"Enabled": true
|
|
},
|
|
{
|
|
"Name": "ConcertInsightsClient",
|
|
"Enabled": true
|
|
},
|
|
{
|
|
"Name": "ConcertInsightsVisualizer",
|
|
"Enabled": true
|
|
}
|
|
- Either unshelf 33391924, or recreate the work in that CL:
|
|
- Engine/Programs/UnrealMultiUserSlateServerConfig/DefaultEngine.ini: Add +ProgramEnabledPlugins=ConcertInsightsServer
|
|
- Engine/Programs/UnrealInsights/DefaultEngine.ini: Add +ProgramEnabledPlugins=ConcertInsightsVisualizer
|
|
- Launch Insights with the console variable "Insights.Concert.EnableGameThreadAggregation = true".
|
|
|
|
========== Tutorial with VCam ==========
|
|
To view example tracing, do the following:
|
|
1. Enable Virtual Camera plugin
|
|
2. Add a VCam actor to your level
|
|
3. Launch MU server
|
|
4. Join machine A to MU session
|
|
5. Join machine B to MU session
|
|
6. Connect your mobile device to the VCam on machine A (see https://dev.epicgames.com/community/learning/tutorials/aEeW/unreal-engine-vcam-actor-quick-start-using-pixel-streaming)
|
|
7. On machine A, in the MU session tab, click Replication, then use the Add button to add the VCamActor for replication (the actor should be automatically set up)
|
|
8. On machine B, pilot the VCamActor manually (right-click in outliner > pilot and in viewport toggle piloting on in top-left corner)
|
|
9. Notice that moving your mobile device should now move the viewport on both machine A (source) and B (replicated)
|
|
8. On machine A or B, in the bottom-right, click Multi User > Start synchronized trace
|
|
9. Move your mobile device
|
|
10. On machine A or B, click Multi User > Stop synchronized trace
|
|
11. Open Unreal Insights
|
|
12. Open any of the 3 trace files that were just generated
|
|
13. Disable all channels except for "Concert"
|