RenderDelegate working with UsdView but not with OV

Hi

I have a RenderDelegate working with UsdView, now I want to integrate it with Omniverse. I’m using the kit.extension.template.cpp to make sure I have the correct dependencies (same between the OV runtime and my plugin) and have integrated the .dll and plugInfo.json at the right location (near to the hdStorm binaries).

The plugin seems to be identified correctly as as see it on the viewport drop-down, near to RTX-Real Time and Pixar Storm. It’s anyway disabled (grayed) with the following error message on the console :

2023-10-16 15:26:24 [114,322ms] [Warning] [omni.usd] Coding Error (secondary thread): in CreateRenderDelegate at line 100 of W:\ac88d7d902b57417\USD\pxr\imaging\hd\rendererPluginRegistry.cpp – Couldn’t find plugin for id USDRendererPlugin

I can provide a Tiny project to reproduce if needed.

Thanks!

Let me see if I can find some help for you.

This is handled by additional code so that extension load/reload will work and keep things up to date in the ui.
You can “register” the plugin to be seen and used using this code:

# On extension startup enable the renderer in the UI
# You may also need to setup/adjust PATH so that all external DLL/so the renderer needs are found
from omni.hydra.pxr.settings import RendererSettingsFactory
RendererSettingsFactory.enable_viewport_renderer("HdDelegateRendererName", "DisplayName")

# On extension unload call the disable function
RendererSettingsFactory.disable_viewport_renderer("HdDelegateRendererName")