Trouble Running new ASDTool Shipped with 5.8

I’m having some drama getting the new ASDTool to compile & run. When attempting to compile via Visual Studio, or Build.bat, I get a wide range of compile errors relating to core header includes or functions (EngineSubsystem.h, UActorComponent::GetWorld(), etc…). Please see the callstack section of this ticket for more details.

The crux of the issue appears to be the reliance on two functions in the D3D12RHI module: BuildComputeShaderRootSignature and BuildGraphicsShaderRootSignature (Initial Github Commit). As we need these, the tool pulls in D3D12RHI as a private module dependency in ASDTool.Build.cs:

if (Target.Platform.IsInGroup(UnrealPlatformGroup.Microsoft))
{
	PrivateDependencyModuleNames.Add("D3D12RHI");
}

However, this triggers a dependency chain, pulling in all kinds of modules, with Engine being the big problematic one as ASDTool.Target.cs disallows compiling against Engine:

bCompileAgainstEngine = false;
bCompileAgainstCoreUObject = false;

I’ve rocked the boat locally a little, pulling the shader root signatures out into another module, or duplicating code, or trying to change the dependencies to pull in more. This either ends up in a mess of changes, or more compiler errors.

What am I missing in order to compile this program locally? Have I got something misconfigured?

Thanks,

David Smith

[Attachment Removed]

Steps to Reproduce
Issue can be reproduced by compiling the ASDTool within Visual Studio.

[Attachment Removed]

Hi David,

I see you have discovered the new ASD Tool already :slight_smile: We haven’t made it official that it’s available yet, since we are still building out full support for ASD in the engine, so the code is very much a WIP. I am going to loop in Kenzo who has been actively working on that feature, so maybe he can give you some pointers as to what you can do to get the ASD tool running.

[Attachment Removed]

Hi,

sorry for the late reply - was on holiday for a bit and then lost track.

It looks like the engine exclude change didn’t make it to 5.8 indeed - will see if I can push that via the next hotfix but not sure if these changes are allowed or not. Will try and find out.

But it’s pretty easy to integrate locally - it should be CL 52904383 from UE5 Main.

But for ASDTool related work I would suggest using the latest version in UE6Main because it’s been pretty heavily modified already since 5.8 release. The input and output of the ASDTool itself should normally be backward compatible with older version of the engine and if not pls let me know because we would like to make it work like that.

But pls know that ASDTool is still in development but we hope to have a fully working pipeline soon for this.

Kind regards,

Kenzo

[Attachment Removed]

Hey Kenzo,

Thanks for the reply, and apologies for also taking some time to respond!

I’ve had some time today to loop back around to this & test. I integrated 52904383 and bar some quirks as a result of local engine changes, it compiled! I then pulled down the UE6 version and everything also looks good.

I haven’t yet had the chance to do a deep dive and test the whole pipeline, yet, but will be sure to let you know once I have :slight_smile:

Thanks,

David

[Attachment Removed]

Sounds good and happy to hear - more changes for ASDTool are still incoming during the upcoming months. It’s still all very WIP but should be useable in some certain form. It might need some documentation as well soon on how to actually use all of it and how we see developers use it internally as well to test their builds. If you try out something and run into issues pls let us know!

Cheers,

Kenzo

[Attachment Removed]