1. A method for optimizing execution of a plurality of image processing routines on a processor using a particular cache, the method comprising: receiving an ordered list of routine identifiers specifying a first order for the plurality of image processing routines, which when executed in the first order produce a particular effect, the ordered list specifying executing a first image processing routine after a second image processing routine and before a third image processing routine; prior to execution of any of the routines by the processor, determining whether the third image processing routine will retrieve from the particular cache, as input data, output data produced by the second image processing routine and stored by the second image processing routine in the particular cache; when the third image processing routine will retrieve from the particular cache output data produced by the second image processing routine, modifying said ordered list to create a modified list of routine identifiers that specifies a second order in which the third image processing routine is executed after execution of the second image processing routine and before execution of the first image processing routine, the second order optimizing processing time for execution of the image processing routines; and executing the plurality of image processing routines in the second order to produce the particular effect.