diff --git a/Engine/Plugins/FX/Niagara/Source/NiagaraCore/Private/NiagaraCustomVersion.cpp b/Engine/Plugins/FX/Niagara/Source/NiagaraCore/Private/NiagaraCustomVersion.cpp index a861705a356c..63c0594584a5 100644 --- a/Engine/Plugins/FX/Niagara/Source/NiagaraCore/Private/NiagaraCustomVersion.cpp +++ b/Engine/Plugins/FX/Niagara/Source/NiagaraCore/Private/NiagaraCustomVersion.cpp @@ -8,4 +8,4 @@ const FGuid FNiagaraCustomVersion::GUID(0xFCF57AFA, 0x50764283, 0xB9A9E658, 0xFF // Register the custom version with core FCustomVersionRegistration GRegisterNiagaraCustomVersion(FNiagaraCustomVersion::GUID, FNiagaraCustomVersion::LatestVersion, TEXT("NiagaraVer")); -const FGuid FNiagaraCustomVersion::LatestScriptCompileVersion(0xD6750F29, 0x8A554BC2, 0xACB577F3, 0xC6BD12CD); +const FGuid FNiagaraCustomVersion::LatestScriptCompileVersion(0x99FA2658, 0xE7E24678, 0xBC4E3F17, 0x603EE37F); diff --git a/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/NiagaraHlslTranslator.cpp b/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/NiagaraHlslTranslator.cpp index d0f7d8406651..c06291759012 100644 --- a/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/NiagaraHlslTranslator.cpp +++ b/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/NiagaraHlslTranslator.cpp @@ -1772,9 +1772,16 @@ void FHlslNiagaraTranslator::DefineDataInterfaceHLSL(FString& InHlslOutput) DIInstanceInfo.DIClassName = Info.Type.GetClass()->GetName(); // Build a list of function instances that will be generated for this DI. + TSet SeenFunctions; DIInstanceInfo.GeneratedFunctions.Reserve(Info.RegisteredFunctions.Num()); for (const FNiagaraFunctionSignature& OriginalSig : Info.RegisteredFunctions) { + if (SeenFunctions.Contains(OriginalSig)) + { + continue; + } + SeenFunctions.Add(OriginalSig); + if (!OriginalSig.bSupportsGPU) { Error(FText::Format(LOCTEXT("GPUDataInterfaceFunctionNotSupported", "DataInterface {0} function {1} cannot run on the GPU."), FText::FromName(Info.Type.GetFName()), FText::FromName(OriginalSig.Name)), nullptr, nullptr);