Hi!
After packaging my project I get a very hard to fix error. I’ve done everything from fixing up redirectors, cloning project, enabling “full rebuild” and deleting the folders: Intermidiate, Saved and Binaries…
I found the file from the error message, and found this explanation:
// Dump the currently registered parameter collections and the ID we failed to find.
// In a cooked project these numbers are persistent so we can track back to the original
// parameter collection that was being referenced and no longer exists
Well, how can I clear this error when it remembers a file that doesn’t exist anymore?
I have vey limited knowlegde about these things.
More of the code in shaderbaseclasses.ccp:
// For shipping and test builds the assert above will be compiled out, but we’re trying to verify that this condition is never hit.
if (ParameterCollectionUniformBuffers.Num() < ParameterCollectionsNum)
{
UE_LOG(LogRenderer, Warning,
TEXT(“ParameterCollectionUniformBuffers.Num() [%u] < ParameterCollectionsNum [%u], this would crash below on SetUniformBufferParameter.\n”)
TEXT(“RenderProxy=%s Material=%s”),
ParameterCollectionUniformBuffers.Num(),
ParameterCollectionsNum,
*MaterialRenderProxy.GetFriendlyName(),
*Material.GetFriendlyName()
);
}
check(ParameterCollectionUniformBuffers.Num() >= ParameterCollectionsNum);
const int32 NumToSet = FMath::Min(ParameterCollectionUniformBuffers.Num(), ParameterCollections.Num());
// Find each referenced parameter collection's uniform buffer in the scene and set the parameter
for (int32 CollectionIndex = 0; CollectionIndex < NumToSet; CollectionIndex++)
{
FRHIUniformBuffer* UniformBuffer = GetParameterCollectionBuffer(ParameterCollections[CollectionIndex], Scene);
if (!UniformBuffer)
{
// Dump the currently registered parameter collections and the ID we failed to find.
// In a cooked project these numbers are persistent so we can track back to the original
// parameter collection that was being referenced and no longer exists
FString InstancesString;
TMultiMap<FGuid, FMaterialParameterCollectionInstanceResource*>::TIterator Iter = GDefaultMaterialParameterCollectionInstances.CreateIterator();
while (Iter)
{
FMaterialParameterCollectionInstanceResource* Instance = Iter.Value();
InstancesString += FString::Printf(TEXT("\n0x%p: %s: %s"),
Instance, Instance ? *Instance->GetOwnerName().ToString() : TEXT("None"), *Iter.Key().ToString());
++Iter;
}
UE_LOG(LogRenderer, Fatal, TEXT("Failed to find parameter collection buffer with GUID '%s'.\n")
TEXT("Currently %i listed default instances: %s"),
*ParameterCollections[CollectionIndex].ToString(),
GDefaultMaterialParameterCollectionInstances.Num(), *InstancesString);
}
ShaderBindings.Add(ParameterCollectionUniformBuffers[CollectionIndex], UniformBuffer);
}