[Bf-blender-cvs] [6b5e1cfacab] master: Geometry Nodes: better devirtualization for sliced virtual arrays
Jacques Lucke
noreply at git.blender.org
Fri Nov 26 10:08:26 CET 2021
Commit: 6b5e1cfacab4c4605ec2d7bfef360389afe849be
Author: Jacques Lucke
Date: Fri Nov 26 10:08:19 2021 +0100
Branches: master
https://developer.blender.org/rB6b5e1cfacab4c4605ec2d7bfef360389afe849be
Geometry Nodes: better devirtualization for sliced virtual arrays
Under some circumstances that can lead to more than a 2x
performance increase, because math nodes can better optimize
for the case when the slice is a single value or span.
===================================================================
M source/blender/functions/intern/generic_virtual_array.cc
===================================================================
diff --git a/source/blender/functions/intern/generic_virtual_array.cc b/source/blender/functions/intern/generic_virtual_array.cc
index 160234c6e61..625aa2cd50f 100644
--- a/source/blender/functions/intern/generic_virtual_array.cc
+++ b/source/blender/functions/intern/generic_virtual_array.cc
@@ -496,6 +496,24 @@ class GVArrayImpl_For_SlicedGVArray : public GVArrayImpl {
{
varray_.get_to_uninitialized(index + offset_, r_value);
}
+
+ bool is_span() const override
+ {
+ return varray_.is_span();
+ }
+ GSpan get_internal_span() const override
+ {
+ return varray_.get_internal_span();
+ }
+
+ bool is_single() const override
+ {
+ return varray_.is_single();
+ }
+ void get_internal_single(void *r_value) const override
+ {
+ varray_.get_internal_single(r_value);
+ }
};
/** \} */
More information about the Bf-blender-cvs
mailing list