Object-Stuttering

Hello guys,
i have one last problem which i cant ignore anymore and i dont find the solution on my own.
My objects sometimes are stuttering. What i mean with “stuttering” is it just dont look very smooth. It is not that recognizable, only if i focus on that object.
E.g. a constantly rotating mesh. Sometimes on a run it looks always smooth, but sometimes the “stuttering” happens.

What i thought so far is that the GPU-memory gets updated during rendering, but i am using for all my buffers coherent-memory (and tried vkFlushMappedMemoryRanges with non-coherent memory aswell).
Beside that for my object data (world-matrix), i am using push-constants and recording the command-buffer every frame. The view-projection is binded via an descriptor-set once for all shaders.
I tried using the mvp as push-constant, but didnt solve the stuttering. Same on my Laptop using a NVIDIA card.
Hope you have an idea.
Thanks in advance

Not much to go on without seeing it for myself and having access to the code…

Is this with layers disabled and Release build settings in your IDE?

Is it Vsynced? What are your frame times (is it observable in the values?)?

Is it just an illusion caused by the constant monitor refresh frequency or pixel density (brain can be sensitive to this for objects rotating at some frequency relative to that – bad ghosting monitors making it worse) or something more?

Is your synchonization in order? You can test by inserting paranoid synchronization with vkDeviceWaitIdle()s.

Have you tried to investigate it through RenderDoc or similar tool?

Yes.

Weird. VK_PRESENT_MODE_FIFO_KHR causes a huge stuttering on my AMD pc while it does nothing on my NVIDIA laptop.
Frame-Times are constant.

Well it happens on both on my PC and my laptop, so i think it isnt just an illusion.

I will try this.

Not yet, but im not really sure how this can help me. It occurs so rare, i dont think i will find anything, but i can try it.

I couln’t solve it :frowning: I rewrote the whole rendering using the same approach as in the Googles “Hologram” demo. It occures a lot rarer now but it still occurs sometimes.

What I know about that “problem”

Generally it is a problem “how” you do handle movement or rotation of objects. Mostly this problem it is a synchronisation problem.
You need to calculate how long it took from the last frame to the actual frame. This can take each frame less or more time.
It depends on how much tasks are running while the programm executes. Also if there is no programm running at same time, there are time differences between frames.
The calculated time between the frames is your delta_time. You can modify it then by a factor or something like you want and then multiply it times the movementfactor.
This could smooth tansition between frames. Look it up on the internet.