Compositor: Implement per-node execution time report #117885

Merged
Sergey Sharybin merged 7 commits from Sergey/blender:compositor_timings into main 2024-02-09 10:19:34 +01:00

7 Commits

Author SHA1 Message Date
Sergey Sharybin aa841a7a84 Address review points from Hans 2024-02-08 17:10:41 +01:00
Sergey Sharybin 27053d0f46 Move timing information storage to scene runtime 2024-02-08 15:13:18 +01:00
Sergey Sharybin d25471d44c Merge branch 'main' into compositor_timings 2024-02-08 14:51:39 +01:00
Sergey Sharybin 9089e21f5c Fix assert 2024-02-07 17:57:45 +01:00
Sergey Sharybin 6b1e565283 Fix spelling 2024-02-07 17:36:37 +01:00
Sergey Sharybin c846fffb19 Merge branch 'main' into compositor_timings 2024-02-07 15:35:41 +01:00
Sergey Sharybin 44d5f7bf22 Compositor: Implement per-node execution time report
buildbot/vexp-code-patch-darwin-x86_64 Build done. Details
buildbot/vexp-code-patch-linux-x86_64 Build done. Details
buildbot/vexp-code-patch-windows-amd64 Build done. Details
buildbot/vexp-code-patch-coordinator Build done. Details
Visually it is the same as the execution time implemented for the
geometry nodes, and it is to be enabled in the overlay popover.

The implementation is separate from the geometry nodes, as it is
not easy or practical to re-use the geometry nodes implementation.

The execution time is stored in a run-time hash, indexed by a node
instance key. This is similar to the storage of the mode preview
images.

The time is only implemented for full-frame compositor, as for the
tiled compositor it could be tricky to calculate reliable time for
pixel processing nodes which process one pixel at a time.
2024-02-06 10:19:44 +01:00