[Gegl-developer] New graph processing code



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.

I've fixed the issues I found in the included operations (load, save, and layer were the only ones broken) and Gimp appears to work, but I'm sure there are some new bugs lurking around after changing this much code. :)

https://git.gnome.org/browse/gegl/log/?h=newgraph-merge

Thanks,
- Daniel


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]