SimulaVR / Simula

Linux VR Desktop
MIT License
2.91k stars 87 forks source link

AMD uProf data #160

Open georgewsinger opened 2 years ago

georgewsinger commented 2 years ago

Steps to generate

git clone https://github.com/SimulaVR/uprof
cd uprof
nix-build
./result/bin/AMDuProf-bin

# ..launch Simula..
# Find the running `godot` process in uprof and analyze it for 20 seconds

AMD uProf data

image

image

image

TLDR

acquire_spin_lock_slow_path in libHSrts_thr-ghc8.10.4.so is the most hogging function.

georgewsinger commented 2 years ago

The above data was with VR running. If instead we profile a running Simula without VR running, we get:

image

Some noticeable functions are absent, including strcmp. Looks like some sort of string comparison operation is hogging resources every frame when VR is running. Possibly related to the

OpenVR reports: 102

being spammed to the console with our current half-working SteamVR on NixOS? I checked SimulaVR/godot and godot-openvr for usage of strcmp and didn't see anything, so whatever it is is at a lower level most likely.