GNOME Bugzilla – Bug 465721
Copy on Write for gegl_buffer_copy()/gegl_buffer_dup()
Last modified: 2013-02-04 06:52:10 UTC
gegl_buffer_copy (which also is used by gegl_buffer_duplicate), can for some cases use shared tiles, and the existing tile-level COW, copy on write, infrastructure.
The cache is shared between all buffers this should be even more feasible now.
In the use of the scan iterators it should now be possible to detect when a tile can be shared by looking at the roi that is reported and comparing it with the tile dimensions of the underlying tile storage.
I implemented the copy on write for gegl_buffer_dup and added test to confirm that it works. I still have trouble with it in the warp op that use it, but it can be a problem in the op.
GeglBuffer now has COW for gegl_buffer_copy (and thus gegl_buffer_dup)