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 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.
Two files in the Houdini plugin are modified:
Adds a branch for usdrender_rop / usdrender / karma ROP types that, at render
time on the Worker:
- sets the ROP's
alfprogressparm to1sohuskprintsALF_PROGRESS n%lines, and - sets the ROP's
verboseparm to2sohuskprints the per-frame>>> Render ... frame: NandSaved 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.
- 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_PROGRESShandler 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%.
| 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.).
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).
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.
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
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.
Modelled on the approach of Scott Bell's Deadline/Houdini Redshift task progress
fix. Karma/USD adaptation built and verified against real husk output.