mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
DisableKernelRecompilation flag and binary kernel recompilation warning
Resolves: NEO-6513 Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
5ca9e30a92
commit
4147f40970
@ -178,7 +178,8 @@ cl_int Program::createProgramFromBinary(
|
||||
PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s\n", decodeWarnings.c_str());
|
||||
}
|
||||
|
||||
if (singleDeviceBinary.intermediateRepresentation.empty() && singleDeviceBinary.deviceBinary.empty()) {
|
||||
bool singleDeviceBinaryEmpty = singleDeviceBinary.intermediateRepresentation.empty() && singleDeviceBinary.deviceBinary.empty();
|
||||
if (singleDeviceBinaryEmpty || (singleDeviceBinary.deviceBinary.empty() && DebugManager.flags.DisableKernelRecompilation.get())) {
|
||||
retVal = CL_INVALID_BINARY;
|
||||
PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s\n", decodeErrors.c_str());
|
||||
} else {
|
||||
|
@ -1619,6 +1619,32 @@ TEST(ProgramFromBinaryTests, givenBinaryWithInvalidICBEThenErrorIsReturned) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(ProgramFromBinaryTests, givenBinaryWithInvalidICBEAndDisableKernelRecompilationThenErrorIsReturned) {
|
||||
DebugManagerStateRestore dbgRestorer;
|
||||
DebugManager.flags.DisableKernelRecompilation.set(true);
|
||||
cl_int retVal = CL_INVALID_BINARY;
|
||||
|
||||
SProgramBinaryHeader binHeader;
|
||||
memset(&binHeader, 0, sizeof(binHeader));
|
||||
binHeader.Magic = iOpenCL::MAGIC_CL;
|
||||
binHeader.Version = iOpenCL::CURRENT_ICBE_VERSION - 3;
|
||||
binHeader.Device = defaultHwInfo->platform.eRenderCoreFamily;
|
||||
binHeader.GPUPointerSizeInBytes = 8;
|
||||
binHeader.NumberOfKernels = 0;
|
||||
binHeader.SteppingId = 0;
|
||||
binHeader.PatchListSize = 0;
|
||||
size_t binSize = sizeof(SProgramBinaryHeader);
|
||||
|
||||
{
|
||||
const unsigned char *binaries[1] = {reinterpret_cast<const unsigned char *>(&binHeader)};
|
||||
MockContext context;
|
||||
|
||||
std::unique_ptr<Program> pProgram(Program::create<Program>(&context, context.getDevices(), &binSize, binaries, nullptr, retVal));
|
||||
EXPECT_EQ(nullptr, pProgram.get());
|
||||
EXPECT_EQ(CL_INVALID_BINARY, retVal);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(ProgramFromBinaryTests, givenEmptyProgramThenErrorIsReturned) {
|
||||
cl_int retVal = CL_INVALID_BINARY;
|
||||
|
||||
|
Reference in New Issue
Block a user