Hi Devs!
Hope you’re enjoying this year of dragons.
So I’m (as often) trying to get my data back from the GPU to the CPU.
I’ve recalled that old node AsString (Ex9.Texture)
(noted for this discussion that AsString works with the same mechanism as Writer)
This is a slow node (as is Writer). The critical procedure appears to be the copy from GPU to CPU.
Please check this speed test patch i made.
Some different codecs do take a bit more time than others, but my conclusion is that the variance is too small for the compression step to be the critical factor (apart from png).
GPU to CPU copy
The copy of the image from GPU to CPU seems far too slow. Perhaps also the rendering is being performed in a strange way? (I thought at one point that perhaps it might even be rendering on CPU, but making the geometry exceptionally complex does not slow down the process)
So in quite a pathetic way, I beg, please can this be sped up!
AsVideo is pretty slow also, but works faster and performs the same operation.
Pipet got sped up recently, perhaps this can be related?
Raw output
A really important string format to have would be raw (e.g. L16 would have string length 2 * width * height).
The length of the string (as seen in the speedtest patch) doesn’t have significant effect on the fps, so this shouldn’t be an issue to send through the graph (and of course, should require less processing in total).
DXT
I noticed that the speed is not increased by setting the texture format to DXT and using a DDS AsString.
This would be a great feature to have (not as much as raw output!).
Where is it rendered?
Can we have a device selection to chose which GPU renders the data?
Summary
If we can get this node working well, then we can get around the need to Texture Input for plugins for a while (especially for copy to CPU operations)
Also for experimental procedures, copying data back to the CPU is really important, and perhaps we’re not very far away from having a few exceptional ways of doing this.
I understand that DirectX 10 and WDDM changes this situation somewhat for the better, but waiting for DX 10, and then an improvement to these nodes subsequently seems like the long way of going about things.
This seems to be what we want:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174405(v=vs.85).aspx
AsString speedtest.v4p (17.4 kB)