I agree it’s getting hard to track changes, I’m hesitant to spend too much time on this plugin if the Thinkbox team are actively developing one. The initial request on the forum came back in 2019 so I’m not sure what the ETA is being that they won’t share a roadmap or any other info.
Other render managers have a working solution, I think we’ll be stuck waiting for the slowing release cycle
Of course I can do that but it could be total mess as I’ve manually merged original author’s Deadline version with newer one plus our local changes. So no one will recognize what is related to Husk what is the updates from Deadline and what’s our own additions
This submits 3 sets of houdini → huskstandalone jobs. They all seem to have the correct usd(a) paths and image paths. However the final image that the husk jobs render, although correctly pathed, sometimes are the same exact image. (example: the Bty pass will render the image that I’d expect from the atmos pass). I’ve tried alternating between usd and usda files to no avail.
They all render correctly if I do an Mplay preview/Local render on my workstation.
Curious if anyone has had similar behavior and might have some pointers on where to look.
Thanks,
-Jake
Here you are. Few notes for usage. This code should be placed into custom folder in the Deadline repository otherwise it wont be working(HDA is modified to look there). Then we changed way how right version of Houdini is selected. Instead of defining all versions paths we used one unified naming where XX.X.XXX are replaced by proper version sent by submitter. You just need to set it up to your needing. So if new version used it will work right away without adding it to the code. Then we are not relaying on houdini.env on the slaves. To set all necessary environments we are using JobPreload.py + pipeline_launch.sh were it’s all set. If you don’t need it just delete JobPreload.py. And as I said before there is couple of changes which are needed for our internal usage. All the code should be compatible for Deadline 10.3.0.13
ok, so it works. I am just wondering about the version functionality. I needed to create the systemvariable “VERSION” for the submitter to work. Should this replace the XX.X.XXX in the path to husk?
no. version is plugin info variable and is written by the code itself (SubmitHoudiniToDeadlineFunctions.py at 995) during submitting, please don’t confuse it with system environment VERSION which we are using as file version token, but this is not involved in determining Houdini version.
then HuskStandalone plugin reads that version in RenderExecutable function and replaces XXX with version of Houdini which submitted your job
def RenderExecutable(self):
#if we know submitter's Hou version we could eventualy use it
version = self.GetPluginInfoEntryWithDefault( "Version", "" )
pathList = self.GetConfigEntry("USD_RenderExecutable").replace("XX.X.XXX", version)
executableFound = FileUtils.SearchFileList(pathList)
if version == "" or not executableFound:
self.LogInfo("Failed to find executable:\nconfig:{}\nVersion:{}\n".format(pathList, version))
return executableFound
Ah, I see. I still need to set the VERSION variable for the submitter to work, but that is apparently something you use in your pipeline and we don’t.
Also, just to make sure I use this as intended: it is still a usd rop feeding into the deadline rop, right? Because I see people pluging (multiple) fetch nodes into it (pointing to usd render lops?)
Ah, I see. I still need to set the VERSION variable for the submitter to work
Hmm this interesting, what kind of error it gives you? You’re right it is just needed in our pipeline so if you want you can cut it off the code.
Yes we are connecting usd rops to the Deadline rop input. It should be fine with usd_render rop too.
EDIT:
you can modify code like this to avoid that missing VERSION env
ver = hou.getenv('VERSION')
if ver:
hou.putenv("VERSION", ver)
hou.hscript('varchange VERSION')
EDIT2: you may wonder why we have this silly code there, we are trying to workaround with it an issue when we are increasing VERSION programmatically it isn’t updated properly in Solaris stage. This code should fix it however even this isn’t working if user have manual update on
We also have these kinds of changes that are hard to separate. Perhaps some sort of hooks system could work.
Of course, if we had a public git repo, at least we could separate our stuff in branches
I was wondering if you found a way to get the Husk standalone render working with the $F4 tag in the USD file output?
I’ve run into the same issue when trying to render on the farm from Solaris. I don’t think I’m able to render it with a single USD as I’m pulling in some fur sim bgeo sequences with SOP imports, and they don’t seem to retain their animation when outputting a single USD. Unless there’s another way I should be doing it.
Thank you! I think it’s working now by passing the file through SubmitHoudiniToDeadlineFunction.py with the $F4 tag, then editing HuskStandalone.py to reformat the tag.