fix: Re-generate metada on every program build

Related-To: NEO-8927

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
This commit is contained in:
Milczarek, Slawomir
2023-10-05 15:13:13 +02:00
committed by Compute-Runtime-Automation
parent f553d9f76b
commit e4c162c572
3 changed files with 9 additions and 4 deletions

View File

@@ -373,7 +373,7 @@ void Program::callPopulateZebinExtendedArgsMetadataOnce(uint32_t rootDeviceIndex
PRINT_DEBUG_STRING(NEO::DebugManager.flags.PrintDebugMessages.get(), stderr, "Error in decodeAndPopulateKernelMiscInfo: %s\n", errors.c_str());
}
};
std::call_once(extractAndDecodeMetadataOnce, extractAndDecodeMetadata);
std::call_once(metadataGenerationFlags->extractAndDecodeMetadataOnce, extractAndDecodeMetadata);
}
void Program::callGenerateDefaultExtendedArgsMetadataOnce(uint32_t rootDeviceIndex) {
@@ -466,7 +466,7 @@ void Program::callGenerateDefaultExtendedArgsMetadataOnce(uint32_t rootDeviceInd
}
}
};
std::call_once(generateDefaultMetadataOnce, generateDefaultMetadata);
std::call_once(metadataGenerationFlags->generateDefaultMetadataOnce, generateDefaultMetadata);
}
} // namespace NEO

View File

@@ -57,6 +57,7 @@ Program::Program(Context *context, bool isBuiltIn, const ClDeviceVector &clDevic
buildInfos.resize(maxRootDeviceIndex + 1);
debuggerInfos.resize(maxRootDeviceIndex + 1);
metadataGenerationFlags = std::make_unique<MetadataGenerationFlags>();
}
std::string Program::getInternalOptions() const {
@@ -339,6 +340,7 @@ void Program::cleanCurrentKernelInfo(uint32_t rootDeviceIndex) {
delete kernelInfo;
}
buildInfo.kernelInfoArray.clear();
metadataGenerationFlags.reset(new MetadataGenerationFlags());
}
void Program::updateNonUniformFlag() {

View File

@@ -380,8 +380,11 @@ class Program : public BaseObject<_cl_program> {
size_t exportedFunctionsKernelId = std::numeric_limits<size_t>::max();
std::once_flag extractAndDecodeMetadataOnce;
std::once_flag generateDefaultMetadataOnce;
struct MetadataGenerationFlags {
std::once_flag extractAndDecodeMetadataOnce;
std::once_flag generateDefaultMetadataOnce;
};
std::unique_ptr<MetadataGenerationFlags> metadataGenerationFlags;
};
} // namespace NEO