Details
Description
I was able to reproduce this bug with the compute-manual example provided with qt3d found in .. qt3d\tests\manual\compute-manual
I had to do some small changes in the example program:
I changed the update of the particles so they move exactly one unit upwards for each execution, and I added an if sentence so that a particle stops moving when it has height >=4.
I also changed the code so that mode is ComputeCommand.Manual at startup.
Since all particles start at height 0, this means that the user should be able to press the "trigger" button 4 times and see the particles move for each press, but pressing the fifth time should result in no moves.
Instead what I observe is that when I press trigger once (Frames spinbox is set to 1), the particles move TWO times. When I press trigger again once, they move two more times and then they don't move more when pressing trigger. I.e. the compute shader is executed 2 times when I call trigger(1)
As a side note, the same happens when the spinbox is set to 0, i.e. trigger(0) is called.
When I reduce the graphical load by making the geometry simpler by letting SphereGeometry have rings: 5, slices: 5, radius: 0.1 the compute shader seems to be executed exactly one time and works as expected.
Also, it would be good to have a mechanism to get feedback when the computeshader is finished executing. I didn't find any information about this in documentation or examples.
Perhaps I have filed this bug under the wrong qt 5.15 version.
I did a "git checkout 5.15" 17.06.2020), and "git branch" command returns "5.15 dev"