Hi Cody,
Thanks for the reply, I made a simplified repro (attached) and I also dug a bit deeper and found some other issues (below). The repro HDA just extrudes a primitive twice, the PDG HDA then takes a mesh as an input and creates a work item out of every triangle to feed to the first HDA.
I tested this both in our compiled project and vanilla Unreal 5.7.4, to repro this:
- Save the attached HDAs
- Edit the uvg_test-pdg_services_test.hda in Houdini
- On the HDA Processor set the "HDA File" to where your uvg_test-extrude_test.hda is
- Create a new blank level in Unreal and place the uvg_test-pdg_services_test.hda
- Using Unreal's mesh modelling tools, create a rectangle with 10x10 subdivisions
- Set the rectangle as an input for the HDA
- Enable and start the Async Importer
- Cook Output of the PDG asset
- Observe that it takes only a few seconds to cook all the work items using the PDG service, then watch each work item appear in Unreal one by one, taking about 2 minutes to do so
These are my times with this setup:
Houdini14 cores, service, Houdini - 0:07 sec
Unreal14 cores, out of process - 2:34 min
14 cores, service - 2:37 min
14 cores, service, async - 2:20 min
The Async Importer seems the most promising here, unfortunately I can't start it in our project as the plugin looks for it where it doesn't exist (our exe lives at
C:\p4\Integration\ue\YaakDriveSim\Binaries\Win64\YaakDriveSimEditor.exe)
LogWindows: Warning: CreateProc failed: The system cannot find the file specified. (0x00000002)
LogWindows: Warning: URL: C:/p4/Integration/ue/Engine/Binaries/Win64/YaakDriveSimEditor.exe "C:/p4/Integration/ue/YaakDriveSim/YaakDriveSim.uproject" -messaging -run=HoudiniGeoImport -guid=D5F71DB34B4C2440273CB9963539224C -listen=2F36C01A4F280933F81975984F0C635F -managerpid=41540
- Is there a way to set/configure this path?
Here are other the issues that I think are bugs:
- "Enable Shared Memory Data Transfer" in the plugin settings leads to a looping message
"LogHoudiniEngine: Error: Failed to get PDG events, error code: 6"when I rebuild the PDG asset
- When I set the HDA Processor to "Cook Type: In-Process" no work items are cooking/coming into in Unreal
- Setting "Recenter Baked Actors" on the PDG in Unreal doesn't actually recenter the baked actors, they still have their origin at 0/0/0
In closing, I was hoping that the new "Enable Shared Memory Data Transfer" would speed things up but it seems to not work. PDG services seem to work after all, but there is still a big bottleneck when transferring the data back to Unreal, even when it's a tiny amount. Is there any way to overcome or speed this up?
Do you want me to email the above bugs to Side-FX support or will you pass it on?
Thanks!