I’m trying to do simple recording and playback in DX11
(i need to record about 1-5secs of kinect frames)
the ideal way would be just to keep them in GPU memory, e.g. in a texture spread (or texture array if necessary)
has anybody tackled this already?
i see sebl’s RingBuffer, but this outputs a 3D texture. I can imagine being able to make this work
but my guess is there are more direct solutions already
Hmm I’m getting a lot of issues with SetSlice
I’m always getting black output when i use it in a live scenario
and often get exception:
00:06:33 ERR : Exception caused by node during update :/74/98/0/1
00:06:33 ERR : System.NullReferenceException in VVVV.DX11.Nodes: Object reference not set to an instance of an
object.
Stacktrace:
at VVVV.DX11.Nodes.TextureArraySetSlice.Reset(DX11Texture2D texture, Int32 w, Int32 h, Int32 d, Format format)
at VVVV.DX11.Nodes.TextureArraySetSliceNode.Update(DX11RenderContext context)
at VVVV.DX11.Lib.RenderGraph.DX11DeviceRenderer.ProcessNode(DX11Node node)
00:06:33 - : Stack Trace
00:06:33 - : at VVVV.DX11.Nodes.TextureArraySetSlice.Reset(DX11Texture2D texture, Int32 w, Int32 h, Int32 d,
Format format)
at VVVV.DX11.Nodes.TextureArraySetSliceNode.Update(DX11RenderContext context)
at VVVV.DX11.Lib.RenderGraph.DX11DeviceRenderer.ProcessNode(DX11Node node)
I’m going to have to try and make a plugin tomorrow for this case instead
also looking into using Renderer TextureArray instead
is there an easy way to render to select which output slide to render to?
i remember hearing somewhere that it’s possible with geometry shader semantics
If you disconnect the SetSlice from the renderer (i was using a switch downstream) then it invalidates the internal data, hence the exceptions being thrown.
You can use SV_RenderTargetArrayIndex as semantic for the output of geometry shader to specify witch slice will go to witch array index this will be on shaders ws
also after some refactoring my SetSlice usage was fixed
it seemed the main error was that the output must always stay actively connected to a renderer otherwise its storage becomes invalidated and the node must be reset