I think the dump you provided was too small to capture what you’re talking about in this instance.
I’m not sure what WaitUntilCompleted or Present do, but I know it’s related to rendering. I think it might be described in Roblox’s microprofiler tutorial videos, or some staff might have commented about it before.
This reply seems to describe what’s going on here well.
Results of course won’t be the same every frame. You have to render and compute different things on each frame. It looks like maybe your GPU usage went up due to the explosion particles during those frames so you saw a longer Present than in other frames. Not 100% sure though.
What do you mean by “It’s from my main script”? The microprofiler does not show the WaitUntilCompleted, Present, or Perform as directly related to any script as far as I can see – it’s just part of the general workload. (Unless WaitUntilCompleted is a custom label)