Houdini USD Farm Publish has local process?

Hello,

We are testing the process of publishing USD simulations in Ayon.
We have however two doubts:

  1. While using the “USD Creator” from the ayon-houdini addon, if we choose the Farm Rendering as the render target, there is a point where the ExtractUSD plugin runs locally and renders the job, which seems counter-intuitive as this process is supposed to happen in the farm, right?


Then we get a job in deadline with as many tasks as frames, which we are confused about why each frame is processed as a different task, is there a way to set it up so that the whole process runs in just one task?

For instance the USDRender Creator prepares the scene all in one task (the Deadline job with the Export IFD tag at the end of the name

What is then the purpose of that local processing on the first place if there is a Render in Farm target?

  1. This is more of a curiosity, we have noticed that this “local” process writes to a non-versioned usd file in the pylish folder, a very light one, which we were wondering what would happen if more than one people were publishing that file? shouldn’t those files be versioned as well?

Thank you in advance for your time!

Kind regards,

I actually think this is a bug.

  1. It currently does render fully locally - as you said. It’s essentially lacking the:
        if instance.data.get("farm"):
            self.log.debug("Should be processed on farm, skipping.")
            return
  1. I’m not entirely sure how trivial it is to offload it to the farm as a “regular” Houdini job, but if it’d trigger through the Extractor logic, then it’d be fine.

The tricky thing is that it does some filepath management and path remapping. Which I’d love to enforce Houdini to do itself, which Houdini USD Output Processors could techically do, but there’s some caveats there because you are required to add those parameters on the ROP node, which would fail if it were inside an HDA, etc. etc. etc. so I never bothered to go deeper there.

So even if it were to run on the farm - it wouldn’t be doing the full remapping unfortunately.

I’ve found this in ExtractUSD plugin.

Thank you for your reply, I hoped it was something as simple as that, should I create an issue/PR? but that won’t change the Deadline job being split in several tasks (one per frame) right? (do you also experience this behaviour?) how would we go about it? I have seen that the code is intended to be set up to not behave like that, as the chunk size is enforced to be 99999999, so maybe there is a bug there as well?