I've created a branch for the new graph processing code so we can test it a bit before I push it to master. It is immensely faster than the old code (my simple 15 node benchmark graph went from 10% overhead to about 0.5% overhead), but it has probably broken some assumptions about the old graph.
The known gotchas:
* get_cached_region is no longer used. The cache bounds are always the full output bounds, but the request will not be expanded.
* The cache intersect is calculated after all requests to a node are combined, so partial cache hits from multiple nodes may skip the cache.
* Meta nodes (nodes who's pads do not reference them) will never be visited.
* Prepare is called only once per node (at least until the node is invalidated), and must not modify the connectivity of the graph.
* get_cached_region is no longer used. The cache bounds are always the full output bounds, but the request will not be expanded.
* The cache intersect is calculated after all requests to a node are combined, so partial cache hits from multiple nodes may skip the cache.
* Meta nodes (nodes who's pads do not reference them) will never be visited.
* Prepare is called only once per node (at least until the node is invalidated), and must not modify the connectivity of the graph.
https://git.gnome.org/browse/gegl/log/?h=newgraph-merge
_______________________________________________ gegl-developer-list mailing list gegl-developer-list@xxxxxxxxx https://mail.gnome.org/mailman/listinfo/gegl-developer-list