Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deadline – Karma / Solaris USD Render task progress

Adds per-frame task progress to the AWS/Thinkbox Deadline Houdini plugin for jobs rendered through the Solaris USD Render ROP (usdrender_rop) with Karma (CPU or XPU) or any other Hydra delegate driven by husk.

The problem

The stock Deadline Houdini plugin has no handling for the usdrender_rop node type. As a result the renderer (husk) runs near-silent and the Deadline Monitor shows 0% for the whole task until it suddenly jumps to 100% when the task finishes. There is no per-frame feedback while the task is rendering.

This is the same class of problem that Scott Bell's well-known Redshift progress fix solved for the Redshift_ROP; this package does the equivalent for Karma/USD.

The fix

Two files in the Houdini plugin are modified:

hrender_dl.py

Adds a branch for usdrender_rop / usdrender / karma ROP types that, at render time on the Worker:

  • sets the ROP's alfprogress parm to 1 so husk prints ALF_PROGRESS n% lines, and
  • sets the ROP's verbose parm to 2 so husk prints the per-frame >>> Render ... frame: N and Saved Image: markers.
  • applies the Override Output (outputimage) when one is supplied.

Because this is done at render time, it works on jobs that are already queued — no change to the submitter or the scene file is required.

Houdini.py

  • Adds two stdout handlers:
    • >>> Render ... frame: N → marks a frame as started (records the frame number).
    • Saved Image: → marks a frame as finished.
  • Extends the ALF_PROGRESS handler to compute overall task progress for the USD ROP types.

husk emits ALF_PROGRESS twice: a within-frame value (0 → 100) and a cumulative between-frame value. The handler only honours the value while a frame is active (usdInFrame) and derives the completed-frame count from the frame number in the start marker — so the reported progress is monotonic and correct even when a frame writes multiple render products.

Resulting Monitor status line, e.g.: Rendering frame 82 (3 of 5) - 55%.

Compatibility

Component Tested with
Deadline 10.4.0.10 (plugin baseline). Should apply cleanly to other Deadline 10.x releases; if the stock Houdini.py / hrender_dl.py differ, use the included .patch files.
Houdini 21.0.700 (Karma & Karma XPU, husk 21.0.700)
Renderer Karma CPU (BRAY_HdKarma) and Karma XPU (BRAY_HdKarmaXPU). The progress markers come from husk itself, not the delegate, so other Hydra delegates run through husk should also report.
Render modes Works with both "one husk process per frame" and "Render All Frames with a Single Process".

The changes are additive (new elif branches and new handler methods) and do not alter behaviour for any other ROP type (Mantra, Arnold, Redshift, etc.).

Installation

Option A — drop-in (recommended, non-destructive)

Copy the Houdini folder from this package into your repository's custom plugins directory:

<DeadlineRepository>/custom/plugins/Houdini/

Files in custom/plugins/ override the matching stock plugin in plugins/Houdini/, so the original is left untouched and the change survives Deadline repository upgrades.

Then in the Deadline Monitor: Tools → Synchronize Monitor Scripts and Plugins (Workers also re-sync the plugin automatically when they pick up a task).

Option B — patch your own plugin (for other Deadline versions)

If your Deadline version's plugin differs from the 10.4.0.10 baseline, apply the unified diffs to a copy of your stock plugin instead of using the files verbatim:

cd <DeadlineRepository>/custom/plugins        # working copy of plugins/Houdini
patch -p1 < /path/to/Houdini.py.patch
patch -p1 < /path/to/hrender_dl.py.patch

(or git apply). The patches are small and only touch the USD-render code paths.

Files

Houdini/
  Houdini.py            patched Deadline Houdini plugin
  hrender_dl.py         patched render script
  Houdini.param         (unchanged – included so the override is a complete plugin)
  Houdini.options       (unchanged)
  Houdini.ico           (unchanged)
Houdini.py.patch        unified diff vs stock Deadline 10.4.0.10
hrender_dl.py.patch     unified diff vs stock Deadline 10.4.0.10
README.md               this file

Tuning Monitor responsiveness (optional)

The Worker reports progress to the database on an interval, and the Monitor reads from the database — so the task list updates a little behind the live Worker panel. To tighten this, lower Number of seconds Between Worker Information Updates under Monitor → Tools → Configure Repository Options → Performance Settings → Worker Intervals (e.g. 5–10s). On large farms, keep it ≥10s to limit database load.

Credits

Modelled on the approach of Scott Bell's Deadline/Houdini Redshift task progress fix. Karma/USD adaptation built and verified against real husk output.

About

Per-frame task progress for Karma / Solaris USD Render (usdrender_rop / husk) jobs in the AWS Deadline Houdini plugin.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages