Disable Deep Profile causes Gfx.WaitForPresentOnGfxThread spikes

Hi, I am new to the profiling window in Unity and trying to understand how to read the information.

I have a scene with a static land mesh with NavMeshSurface and 20 NavMeshAgents just wandering around. The NavMeshAgents have animated low poly meshes (less than 200 triangles each) imported from Blender. They are all from the same prefab, hence identical.

When Deep Profile is turned OFF, I get these periodic square bumps. The timeline for this frame shows I have a long running Gfx.WaitForPresentOnGfxThread and Semaphore.WaitForSignal slowing down the player to 15 FPS, but I cannot figure out what it is waiting for. There is nothing in the Render Thread or anything else.

When Deep Profile is turned ON the spikes never happen. I only get these Editor Loop spikes, and other than that it is a stable 60 FPS.

It seems counter intuitive that deep profiling causes the game to run more smoothly. How do I dive deeper to find out what is causing the spikes? Also, if the Editor stuff are also getting profiled, that how do I get accurate picture of how the game is performing when standalone?

Thanks.

Same thing !! On unity 2021.3.4 ! My scene is practically empty with a static land mesh with NavMeshSurface

Edit: try turning on v-sync for all qualities

Edit 2: Still no change, the higher quality always has a stutter. Must be smth with the graphics card driver

After turning off v-sync, the shape, timing and frequency of the spikes are different now. I build and run a development build autoconnect to profiler and find that in my specific profiling scenario, I am getting DXGI.WaitOnSwapChain spikes. However, I am pretty sure in the Editor, the spike is due to sometime else.