» ReadBack DX11
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

ReadBack DX11

pack
Credits: Supported by schnellebuntebilde and sebl

about

Description

This pack contains 2 nodes:

  • Writer (DX11.Texture2D Parallel)
  • Writer (DX11.Texture2D Async)

to accelerate workflows when you have to save many textures to disk quickly. This node generally supports all formats supported by the standard Writer node (e.g. recently 16bit PNG's), and uses the same functions internally.

Parallel

Accepts a spread of textures and saves them to disk in separate threads. The main thread blocks until all save operations are complete

Async

Accepts a spread of textures and saves them to disk in separate threads. The main thread is not used for saving, and is allowed to continue. Later when any save operation is completed, the node will output the result of that save operation on its output.

Generally we restrict the queue size to ensure that we don't crash the GPU with too many save devices. Also adding more than 8-16 save devices doesn't offer any performance gains.

Notes

In order for textures to be saved on threads other than the main thread, we must spawn a seperate DX11 Device for that thread and use texture sharing to copy this texture over to the background Device (note : for DX11, a Device is essentially a pool of memory on a GPU, each GPU is called an Adapter and an Adapter can run multiple Devices).

Source Code

Source code is available athttps://github.com/elliotwoods/VVVV.Nodes.ReadBack.

Thanks

Thanks to schnellebuntebilde and sebl for their support in making these nodes.

Changelog

Temporary note... v3 and v2 have been taken down because of issues with DLL paths. Will re-upload when I've found a solution. Note that it may not be compatible with vux's latest dx11 pack for the time being.

v4

  • Added DLL's that are missing from vux's dx11 0.7.1 release

v3

  • Compile against vux's latest dx11 pack 0.7.1
  • Re-arrange zip internal folder structure to match standard pack style

v2

  • Add Zombie Survival Age config pin node to Async node.
  • Improve Async help patch

Thank you!
Elliot

download

WriterNodes.7z
15.10.17 [22:36 UTC] by sebl | 19 downloads
update for vvvv b35.8 and dx11 > 1.0
Show 2 older revisions

Older Revisions

VVVV.Nodes_.DX11.ReadBack.zip
08.09.16 [11:06 UTC] by elliotwoods | 469 downloads
v4
VVVV.Nodes_.DX11.ReadBack.zip
06.09.16 [11:44 UTC] by elliotwoods | 80 downloads
v1

isdzaurov 07/09/2016 - 13:41

nice!

elliotwoods 08/09/2016 - 11:09

some people might have had issues using this with vux's latest dx11 pack.
vux's pack seems to be missing some dll's used by the BlockWriter node (which are also used by these nodes), so i've included those in the v4 download zip (the directory layout should mean you can just drag the packs folder into your vvvv folder and everything will be in the right place)

i've also flagged this with vux : https://github.com/mrvux/dx11-vvvv/issues/265

i'll remove again later when either vux re-includes the dll's or has a new solution for handling this

lassemunk 11/10/2016 - 12:51

Hi Elliot,

I would like to try out the Readback nodes, but I get an error that 'DirectXTexLib_x64' is not found.

I've searched around and found the library

https://github.com/Microsoft/DirectXTex

but I am new to github, and not sure how to install this library. The library states that it is made for Visual Studio 2015 update 3, so I've downloaded / installed VS2015, but I don't get how I can use it to install the DirectXTex library.

If this is in fact necessary, could you then include the correct git command line in the description for this pack? I think it would be very helpful for others too in the future :)

Thanks a lot !

Lasse

EDIT (with help from sunep):

I found out that I had misunderstood the way I was supposed to install the pack.

The correct way is to install 7zip unzipper software, place the .zip folder of the ReadBack package next to the vvvv.exe, right click and press 'Extract here'.

7zip will hereby place the content of ReadBack to the correct subdirectories of the allready existing packs folder.

I had forgotten to copy the content of DX11 (the DirectXTex_64.dll) to the already existing DX11 folder, because I thought this was just a DX11 library for vvvv.

Thanks to Sune!

lassemunk 12/10/2016 - 10:56

Hi Elliot,

Is it possible to specify to save a singlechannel R16_UNorm .dds ?

When I specify the target format (R16_UNorm) of the renderer before it goes to the ReadBack writer (DX11.Texture2D Async), select format Dds for the writer, and make sure the filename is .dds; when I read the image sequence, the image is a

R16G16B16A16_UNorm file

Thank you for the great work !

Lasse :)

elliotwoods 20/10/2016 - 03:30

@lassemunk @sunep
thanks for figuring out about pack location!

i noticed that vux's latest release is missing DirectXTex
so that's why I added it to my zip, but i needed to put those dll's into the dx11 folder location in order for them to work
hence you need to unzip this pack at vvvv.exe so that everything lands correctly

@lassemunk - concerning R16_UNorm saving (e.g. depth map)
AFAIK, this should be supported correctly so i'm sad to hear it's broken

i'm sorry but i don't have time to look into this right now

the source is available at:
https://github.com/elliotwoods/VVVV.Nodes.ReadBack
in case you want to (know somebody to) have a go at fixing it.
otherwise please can you add an issue there

yochee 23/04/2017 - 01:32

hello, I have a little problem with readback and kinectV1

I'd like to save a png sequence from a kinect image stream (MS Kinect dx11 texture/layer). So I select corresponding save settings in Readback, but all that I can see in the resulting png files is the test numbers, not the kinect image (same with bmp, gif.. etc). Note that there is alpha in the image, so not even a black background texture..

  • >
PNG without Kinect image only test number

Only when I select Jpeg, I can get valid images including test number and kinect image

  • >
JPEG with Kinect and test number

Within the renderer I am using R8G8B8A8_UNorm

any ideas?

eno 23/04/2017 - 05:56

I see a red spill at the borders of your text, where the underlying texture should be.
So I guess that the rgb pixel information is there, it's just 'invisbible', because alpha is 0 in that area.
jpeg cant save alpha, that's why you see the colors in that format.
try different blend modes for your foreground layers, and maybe just for a check use setAlpha dx11 texture FX to make sure your alpha is 1 where it is needed.

eno 25/05/2017 - 18:28

Is anybody else experiencing crashes with b35.5?

mediadog 13/06/2017 - 20:14

@eno I get an instant crash with both help patches when banging Write with a35.7 x64 release candidate and the 17/05/31 build of DX11. Haven't tried other combos.

anonymous user login

Shoutbox

~21h ago

graphicuserinterface: anyone have the files for kinect1 proyector calibration?, thanks!!

~3d ago

keftaparty: Hey microdee, or take some holidays, it's nice :-)

~3d ago

microdee: meanwhile, I became available for freelancer/contractor/even full time jobs, in case anybody is in hiring mood, wink wink ;)

~3d ago

skyliner: @sinus: top notch! ;)

~3d ago

sinus: @skyliner: the top boys/creators of notch here: https://www.youtube.com/watch?v=2JzG-Y3YOdk

~5d ago

karistouf: thank you joreg, but external solution from VVVV is not possible.

~5d ago

catweasel: @joreg, I'm not sure he did ;) But if you do use timeliner use this as well autosave as well.

~5d ago

joreg: if anyone knows more osc timelines please put them there as well!