Forum

Problem with 3d Buffer Queue / FrameDelay with SetSlice

Hi guys! I am quite new to vvvv and want to store the output of a 3D Buffer (many thousands positions) for a small number of frames and output them all together with SpriteBuffered. I tried to use Queue 3D Buffer which is connected to SpriteBuffered, but the sprites flicker, regardless what I set for the frame count. The spreadcount for SpriteBuffered is set to Queue’s spreadcount * framecount. It looks like the Queue doesn’t store all positions properly or mixes up the indices. If I reduce the spread count to ~100, it gets stable, no flickering anymore. I checked everything several times, but couldn’t find the reason.
Then I tried to make a workaround with a SetSlice loop. I wanted to feed the output of SetSlice, delayed by FrameDelay 3D Buffer, again to its input. But vvvv doesn’t allow me to connect FrameDelay again to SetSlice. Such a loop works with not-buffer nodes, but I need the same with a 3D buffer.
What can I do? I just want to store my 3D Buffer for a small number of frames and output them with SpriteBuffered. Any help very appreciated! Thanks.

Please attach a patch that demonstrates the issue / what you are trying to achieve.

Sure, thanks for replying. Here we go (I cannot upload directly because I am a new member…): https://drive.google.com/file/d/1GY6PEbU_y39pFT_H_jNehpasGa9edid_/view?usp=sharing

If you keep the spread count below ~128 it is stable. And above it becomes flickery…

Indeed there seems to be something fishy with the queue but I also can’t figure it out. Maybe @everyoneishappy, @antokhio or someone else that is more versed in compute shaders can chime in.

Test2.v4p (28.5 KB)

Seems some error, strange it happens only when you increase spread counts. Shame don’t have time to proper look…

Unfortunately this seems to be showing a deeper bug.

I only had enough time for a quick look but my impression is that the source of the error is that in the shader sbSize(valueBuffer) is not returning a consistent result.

If we go down a level this function in packs\happy.fxh\sbuffer.fxh is just a wrapper for .GetDimensions(), which indeed, inline causes the same error. This gets used all over the place, so surprised not seeing a lot more bug reports.

I’m out of time just now, but if confirmed this probably needs to go in as an issue on the vvvv DX11 github.

If you need a quick solution set the vCount variable to your input buffer size manually

First of all, thanks for looking into it. I am quite suprised to have discovered a deeper bug… ;)
However, if I set vCount to the same value as SpreadCount, it still flickers. Only below 128 it remains stable…

Someone any idea??