CI_PRINT_TREE: debugging intermediate cache hits

In WWDC20 it was mentioned that missing compileTime/renderTime (or no intermediate image with the dump-intermediates option) can indicate a cached intermediate. I have also seen renderTime=cacheHit on passes that are clearly rendering intermediates, and an actual renderTime is only properly shown on the final pass which always seems to equal the final time render time. In compileTime it says cacheMiss.

Which fields should be considered authoritative for tracking intermediate cache hits versus actual rendering?

Thanks!

Answered by Frameworks Engineer in 893497022

cacheMiss in the compileTime context is about the CoreImage GPU program cache (not intermediate texture caching). It indicates the GPU program needed to be compiled / created for the first time for that specific CIContext and was not in the cache when that program was needed for rendering.

cacheMiss in the compileTime context is about the CoreImage GPU program cache (not intermediate texture caching). It indicates the GPU program needed to be compiled / created for the first time for that specific CIContext and was not in the cache when that program was needed for rendering.

Thanks, that clarifies compileTime.

What should I look at in the graph dump to determine whether an intermediate was reused from Core Image’s intermediate cache rather than rendered again?

Accepted Answer

renderTime=cacheHit on a node means the intermediate was reused

CI_PRINT_TREE: debugging intermediate cache hits
 
 
Q