Skip to content

R57.A8 Event profiling support & lazy plugin loading

Compare
Choose a tag to compare
@AkarinVS AkarinVS released this 02 Feb 07:20
· 48 commits to doodle2 since this release

Besides some bugfixes (e.g. a proper fix for vapoursynth#929), this release introduced event profiling with nsight. Configure nsight to capture NVTX traces (and CUDA/GPU metrics if you also want to profile CUDA plugins.)

A new VS-C API RawNode._setName(name) can be used to set a node's name. Event profiling will include the node's name. vspipe -g and vspipe --filter-time will also include a node's name (if different from node's filter name).

NVTX Event Domains:

  • vs-cache: cache related events (categories: 1 hit, 2 miss, 3 grow, 4 shrink).
  • vs-create: filter creation events (measures filter creation latency)
  • during run time, filter callbacks are classifies into these four domains
    • vs-initial: arInitial getFrame callbacks
    • vs-ready: arAllFrameReady or arFrameReady getFrame callbacks
    • vs-error: arError getFrame callbacks
    • vs-unknown: other activationReasons (shouldn't normally happen).

The profiling code is always enabled, but without using nsight instrumentation, the overhead should be minimal.
(Define NVTX_DISABLE macro to completely remove the profiling code.)

You might need a certain internal script to help generate better profiles.

python 3.8/3.9/3.10/3.11/3.12alpha support are provided.

Note: this release dropped support for 32-bit windows/x86 as it has been effectively unmaintained and untested since api4.