When submitting usdrender nodes, the user is able to choose the renderer that it uses. Unfortunately the renderer limit group is not reflected in the submitted job. Our husk deadline plugin is set to use karma licenses by default, but if the artist wants to use arnold, then our limit groups will not reflect the usage and some renders will fail not being able to obtain a license. We could all render limit groups by default, but then that will use up a slot needlessly if the artist is not choosing to use that renderer.
Is there a workaround for this, or should this feature be added?
thanks
You can expose the Limit Group as customize setting in the Publisher UI: ayon+settings://deadline/publish/CollectJobInfo/profiles/0/overrides
That’d apply to a specific profile or context, you can also set the default “Limit Groups” above in those same settings.
However, we currently do not have any logic that auto-applies a particular limit group based on e.g. what renderer is being used. This could be trivial to implement with a custom plug-in though.
from typing import TYPE_CHECKING
import pyblish.api
import hou
if TYPE_CHECKING:
from ayon_deadline.lib import PublishDeadlineJobInfo
class CollectHoudiniRendererLimits(pyblish.api.InstancePlugin):
"""Add limit groups to job based on current renderer in Solaris
Applies to Husk Standalone USD renders.
"""
order = pyblish.api.CollectorOrder + 0.499
label = "Collect Farm Limits based on renderer"
hosts = ["houdini"]
families = ["usdrender"]
targets = ["local"]
def process(self, instance):
if not instance.data.get("farm"):
self.log.debug("Should not be processed on farm, skipping.")
return
# Get the renderer from the USD ROP
rop_node = hou.node(instance.data["instance_node"])
renderer: str = rop_node.evalParm("renderer")
job_info: "PublishDeadlineJobInfo" = (
instance.data["deadline"]["job_info"]
)
self.log.debug("Adding Limit Group for renderer: %s", renderer)
job_info.LimitGroups.append(renderer)
Would be something like this probably (didn’t test it though)
1 Like
