Vaiva Kazanaviciute

play_w_madness

About Me

EXPERTISE
VFX Artist
INDUSTRY
Film/TV

Connect

LOCATION
Paris, France

Houdini Skills

ADVANCED
Digital Assets  | Pyro FX  | VEX  | Python
INTERMEDIATE
Procedural Modeling  | Solaris  | Mantra  | Karma  | Fluids  | Destruction FX  | PDG
BEGINNER
Realtime FX

Availability

Not Specified

Recent Forum Posts

Pink lines in viewport July 1, 2024, 12:37 p.m.

On the button strip to the right of the viewport there's a "display primitive normals" toggle

Need help with improving this flip simulation June 28, 2024, 1:08 p.m.

Looks like container boundaries, it's too shallow and there's not enough padding above the water level

What is the data storage method of Houdini Opencl? June 15, 2024, 2:50 p.m.

From https://www.sidefx.com/docs/hdk/_s_i_m___geometry_8h_source.html [www.sidefx.com] :
/// Attempt to build a GPU-backed attribute from our geometry.
/// Returns 0 on failure.
/// You do not own the resulting GA_CEAttribute.
GA_CEAttribute* SIM_Geometry::getReadableCEAttribute(GA_AttributeOwner owner, const UT_StringRef &aname, GA_StorageClass storage, int &tuplesize, bool isarray, bool docopy) const { return getReadableCEAttributePrec(owner, aname, storage, GA_PRECISION_32, tuplesize, isarray, docopy); }
virtual GA_CEAttribute* SIM_Geometry::getReadableCEAttributePrec(GA_AttributeOwner owner, const UT_StringRef &aname, GA_StorageClass storage, GA_Precision prec, int &tuplesize, bool isarray, bool docopy) const;

From https://www.sidefx.com/docs/hdk/_g_a___c_e_attribute_8h_source.html [www.sidefx.com] :
cl::Buffer GA_CEAttribute::buffer() const { return myBuffer; }
cl::Buffer GA_CEAttribute::indexBuffer() const { return myIndexBuffer; }

So, I imagine a correct way of obtaining a handle to a GPU buffer would be to obtain GA_CEAttribute ptr from SIM_Geometry
that you get from SIM_Object
that you get from GAS_SubSolver::solveGasSubclass override in your solver class.

And judging by SIM_Geometry public interface, I think it's not going to alloc/build a new buffer for attrib if there already exists one and it wasn't flushed