Skip to content

Commit 7d2d5e5

Browse files
Add to decodeToken debugPrintf when ignored token
set as ignored token PATCH_TOKEN_INTERFACE_DESCRIPTOR_DATA Signed-off-by: Katarzyna Cencelewska <[email protected]>
1 parent 7f729b7 commit 7d2d5e5

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

shared/source/device_binary_format/patchtokens_decoder.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,9 @@ inline bool decodeToken(const SPatchItemHeader *token, KernelFromPatchtokens &ou
317317
out.unhandledTokens.push_back(token);
318318
break;
319319
}
320+
case PATCH_TOKEN_INTERFACE_DESCRIPTOR_DATA:
321+
PRINT_DEBUG_STRING(DebugManager.flags.PrintDebugMessages.get(), stderr, "Ignored kernel-scope Patch Token: %d\n", token->Token);
322+
break;
320323
case PATCH_TOKEN_SAMPLER_STATE_ARRAY:
321324
assignToken(out.tokens.samplerStateArray, token);
322325
break;

shared/test/unit_test/device_binary_format/patchtokens_decoder_tests.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#include "shared/source/device_binary_format/patchtokens_decoder.h"
99
#include "shared/source/helpers/hash.h"
10+
#include "shared/test/common/helpers/debug_manager_state_restore.h"
1011
#include "shared/test/common/test_macros/test.h"
1112

1213
#include "patchtokens_tests.h"
@@ -1210,3 +1211,27 @@ TEST(ProgramDecoder, GivenProgramWithMultipleKernelsWhenFailsToDecodeKernelThenD
12101211
EXPECT_EQ(2U, decodedProgram.header->NumberOfKernels);
12111212
EXPECT_EQ(1U, decodedProgram.kernels.size());
12121213
}
1214+
1215+
TEST(ProgramDecoder, givenPatchTokenInterfaceDescriptorDataWhenFlagPrintDebugMessagesAndDecodeTokenThenRightMessagePrinted) {
1216+
using namespace iOpenCL;
1217+
DebugManagerStateRestore debugManagerStateRestore;
1218+
DebugManager.flags.PrintDebugMessages.set(true);
1219+
1220+
std::vector<uint8_t> storage;
1221+
storage.reserve(512);
1222+
auto kernelToEncode = PatchTokensTestData::ValidEmptyKernel::create(storage);
1223+
1224+
auto patchListOffset = ptrDiff(kernelToEncode.blobs.patchList.begin(), storage.data());
1225+
pushBackToken<SPatchInterfaceDescriptorData>(PATCH_TOKEN_INTERFACE_DESCRIPTOR_DATA, storage);
1226+
1227+
auto kernelHeader = reinterpret_cast<iOpenCL::SKernelBinaryHeaderCommon *>(storage.data());
1228+
kernelHeader->PatchListSize = static_cast<uint32_t>(storage.size() - patchListOffset);
1229+
NEO::PatchTokenBinary::KernelFromPatchtokens decodedKernel;
1230+
testing::internal::CaptureStderr();
1231+
bool decodeSuccess = NEO::PatchTokenBinary::decodeKernelFromPatchtokensBlob(storage, decodedKernel);
1232+
1233+
std::string output = testing::internal::GetCapturedStderr();
1234+
EXPECT_TRUE(decodeSuccess);
1235+
EXPECT_EQ(NEO::DecodeError::Success, decodedKernel.decodeStatus);
1236+
EXPECT_EQ("Ignored kernel-scope Patch Token: 21\n", output);
1237+
}

0 commit comments

Comments
 (0)