Directly accessing points stored in GPU memory

   880   1   1
User Avatar
Member
1 posts
Joined: 1月 2022
Offline
Hi all,

I'm currently working on a node which, when executing, is a bit slow for my liking.

I've been using a profiler / in-built cook times to determine what's making it slow.

The node itself takes ~0.3ms to execute but displaying the result is pretty slow. The operation takes place over approximately 2.5 million points.

When simply viewing the points generated in the viewport it renders at around 20-30fps but executing the cook function takes ~0.22s. I'd really like to have this performed in real-time as this will be a much nicer experience for artists compared to the current stuttery mess it turns in to when continuously adjusting the ramp values used for input.

My suspicion is that the large viewport update time is due to the large amount of data (~230mb if I'm doing maths correctly) being copied over to actually display the points.

I'd really like to do the maths directly on the points in GPU memory which represent the mesh in question and then asynchronously copy them back CPU side to update the point values. If binding "P" points in the OpenCL node does this then that's great but my current understanding is that binding an attribute copies the values from the RAM to GPU memory which is exactly what I'm trying to avoid.

I'm not able to find anything that indicates that this is possible so I'm asking here.

Thank you!
User Avatar
Member
136 posts
Joined: 8月 2015
Offline
*Bump cause I'm interested in this as well :p

( I have spent hours and hour trying to find a way to "inject" a single float3 value into a opencl node/compiled block / dop network with gas opencl. The idea being that an opencl wrangle can process and offset point values thousands of times in a second but when adding a vector from any source, performance drops with orders of magnitude. I'd like to get an interactive update of points with opencl by dragging around a point from an add node)
  • Quick Links