After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 357261 - Caching
Caching
Status: RESOLVED FIXED
Product: GEGL
Classification: Other
Component: core
unspecified
Other All
: High enhancement
: ---
Assigned To: Default Gegl Component Owner
Default Gegl Component Owner
Depends on:
Blocks:
 
 
Reported: 2006-09-22 23:01 UTC by Øyvind Kolås (pippin)
Modified: 2007-11-24 18:54 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Øyvind Kolås (pippin) 2006-09-22 23:01:44 UTC
Write an operations that maintains a sparse backing buffer the size of the HAVE
rect of the operations. Keeps rendered information, and keeps cached computations
as long as the properties have not changed.

Where in the graph to apply caching should be possible to deduct from runtime
instrumentation of which subgraphs do not change. Actually placed cache nodes
could be moved to adapt to changes in processing behavior.
Comment 1 Øyvind Kolås (pippin) 2006-12-08 11:40:25 UTC
The projection used in the test app has been refactored to be a subclass of buffer. Most of the logic in the projection is actually a buffer cache. Another
part of GEGL that needs changing is the evaluation and management of data during
graph traversals. A new Class called GeglNodeDynamic which is associated with GeglNode and looked up with a evaluation context id is going to be used for this purpose.
Comment 2 Øyvind Kolås (pippin) 2006-12-28 03:45:51 UTC
The reentrancy needed to try implementing this (recursive cached evaluation) should now be possible.
Comment 3 Øyvind Kolås (pippin) 2007-01-22 00:21:57 UTC
Changed priority to high, since this should make GEGL more responsive as the sizes of used graphs grow.
Comment 4 Øyvind Kolås (pippin) 2007-01-28 12:17:08 UTC
All external uses of GeglCaches have been internalized now, and are accessed
through gegl_node_blit, this is a step towards adding proper caching.
Comment 5 Øyvind Kolås (pippin) 2007-08-11 16:28:32 UTC
All nodes currently have caches, and gegl_operation_get_target uses the node's cache for writing it's output. The infrastructure seems to be mostly functional.
At the moment all nods in the graph have caches, this will eventually fill the swap, at some point some management code needs to void regions or whole GeglBuffers to reduce the swap congestion.
Comment 6 Øyvind Kolås (pippin) 2007-11-24 18:54:23 UTC
Closing bug since it initial goals are filled (will open a new bug about the fact that the tile pool/swap will get saturated.)