Conversation
Probe the selected HDK/USD APIs and preserve legacy branches while following its C++ standard, ABI, Python and OpenVDB requirements. Update the pinned RPR SDK and add an opt-in private HIP 7 loader independent of Houdini version. Convert modern Hydra implicit surfaces, honor the actual display-buffer format, and map Houdini default beauty to native color. Expose nonduplicate viewport sampling, device and resolution diagnostics. Validated build and live material rendering on Houdini 22.0.429/Linux with SDK 3.1.6.patch1, ROCm 7.2.4 and Radeon AI PRO R9700. The empty HIP override configures successfully; other compatibility paths are retained but untested. Document reproduction, observed HOM pause behavior and validation limits.
Add optional CPU OIDN filtering for Northstar beauty before display transforms, with guide handling and an installed runtime search path for the selected OIDN. Separate HybridPro denoising from FSR2 upscaling and expose backend/mode stats. Register Linux HybridPro and discover advertised physical GPU indices through the optional SDK export. Keep legacy GPU0 fallback when unavailable, and reject explicit multiple or stale Hybrid device selections instead of changing cards. Document tested Houdini runtime behavior, passive compatibility and the observed AMD RADV HybridPro device loss. Northstar/HIP and NVIDIA HybridPro preview checks passed; no matched GPU benchmark or AMD Vulkan stability claim is made.
Join workers before delegate state is destroyed, preserve stop/pause semantics, and refresh reallocated render buffers. Let Houdini own renderer restarts with optional per-context Hybrid GPU selection. Report failed rendering as incomplete and reset accumulation coherently. Add bounded CPU thread regressions and correct motion-mesh property storage and undefined initialization. Document remaining HybridPro image corruption, GPU timeouts, and SDK teardown crashes; successful sample counters are not accepted image validation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The plugin now builds and renders against Houdini 22.0.429 and its USD 26.05
SDK. Header capability probes select the compatible Hydra, Sdr/Ndr, HDK,
Python and OpenVDB APIs while retaining the older code paths. Houdini 22 and
ROCm 7 are supported options, not new minimum requirements.
The SDK dependency is updated to v3.1.6.patch1. An optional private HIP 7 loader
allows the SDK to use an explicitly selected ROCm installation without replacing
system libraries. Leaving the build/runtime overrides empty retains the SDK's
default runtime selection.
Interactive rendering gains optional CPU OIDN for Northstar, Linux HybridPro
device selection, and independent temporal-denoising/upscaling controls. Native
resolution can be used with SVGF or ASVGF. The port also converts analytic USD
primitives when required and handles Houdini's concrete RGBA display-buffer
format and default beauty LPE.
Renderer lifecycle fixes address paused-worker shutdown, delegate/configuration
lifetime, per-delegate edit ownership, output-buffer allocation/rebinding, and
failure/convergence reporting. Backend/device settings use Houdini's native
context-restart mechanism. Additional corrections initialize camera/light/timing
state and fix undersized motion-mesh property storage.
Validation
Python 3.13, USD 26.05, MaterialX 1.39.5 and OpenVDB 13.
Glass, chrome, procedural materials, analytic-sphere conversion and emissive
illumination checked in an isolated scene. Northstar raw/OIDN/adaptive+OIDN
paths exercised; native-resolution HybridPro ASVGF also used interactively.
including paused shutdown, concurrent pause/stop, cancellation and owner lifetime.
LeakSanitizer was disabled for the sandbox. Repeated successfully on 2026-09-07.
32→128 samples, round trips through Northstar and Karma CPU, and a camera
translation/restore. Returned HybridPro images were inspected; Karma's own
image was not part of that comparison.
material, light and camera changes and clean teardown. The retained output
passes the supplied radiance/reset/teardown checker.
git diff --checkpasses, and the branch is clean against the current upstreambase. No production source changed after the installed build's validation.
Known limits
Older Houdini versions, other operating systems and alternative runtime
combinations retain their compatibility paths but were not tested here. Each
Houdini/USD ABI still needs its own build.
HybridPro on the tested R9700/RADV 25.2.8 stack exhibits an accumulation/reset
failure in the unmodified standalone SDK.
RADV_DEBUG=syncshaderscorrects thetested images and enabled the GUI sequence above; the plugin does not force
this diagnostic flag. Earlier AMD and NVIDIA device-loss events also exposed
SDK cleanup crashes. Recovery after GPU device loss remains unresolved.
A subsequent HybridPro production-scene check found that generic
UsdPreviewSurface emission did not display the authored machine lights.
The same geometry rendered those sources with native RPR Uber materials and
explicit emission inputs. The generic emission mismatch is not yet isolated
or fixed by this port; that material path needs further validation.
FSR2 image quality and its internal ordering with ASVGF are not validated.
Production fluid/volume/MaterialX coverage, long playback and a matched
production-scene GPU benchmark are outside this validation. Render/resolve
counters measure CPU wall-time regions and can include GPU waits; they are not
isolated GPU-pass timings.
Build instructions and detailed limits are in
BUILD_HOUDINI.md; standaloneCPU/SDK test instructions are in
pxr/imaging/plugin/hdRpr/testenv/.