Skip to content

Commit 0e30ac7

Browse files
Ocloc: add support for hexadecimal input of revision_id
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
1 parent 02017c6 commit 0e30ac7

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ TEST(OfflineCompilerTest, givenDeviceSpecificKernelFileWhenCompilerIsInitialized
13831383
EXPECT_STREQ("-cl-opt-disable", mockOfflineCompiler->options.c_str());
13841384
}
13851385

1386-
TEST(OfflineCompilerTest, givenRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) {
1386+
TEST(OfflineCompilerTest, givenHexadecimalRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) {
13871387
auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler());
13881388
ASSERT_NE(nullptr, mockOfflineCompiler);
13891389

@@ -1395,11 +1395,30 @@ TEST(OfflineCompilerTest, givenRevisionIdWhenCompilerIsInitializedThenPassItToHw
13951395
"-device",
13961396
gEnvironment->devicePrefix.c_str(),
13971397
"-revision_id",
1398-
"3"};
1398+
"0x11"};
13991399

14001400
int retVal = mockOfflineCompiler->initialize(argv.size(), argv);
14011401
EXPECT_EQ(OfflineCompiler::ErrorCode::SUCCESS, retVal);
1402-
EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 3);
1402+
EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 17);
1403+
}
1404+
1405+
TEST(OfflineCompilerTest, givenDecimalRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) {
1406+
auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler());
1407+
ASSERT_NE(nullptr, mockOfflineCompiler);
1408+
1409+
std::vector<std::string> argv = {
1410+
"ocloc",
1411+
"-q",
1412+
"-file",
1413+
"test_files/copybuffer.cl",
1414+
"-device",
1415+
gEnvironment->devicePrefix.c_str(),
1416+
"-revision_id",
1417+
"17"};
1418+
1419+
int retVal = mockOfflineCompiler->initialize(argv.size(), argv);
1420+
EXPECT_EQ(OfflineCompiler::ErrorCode::SUCCESS, retVal);
1421+
EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 17);
14031422
}
14041423

14051424
TEST(OfflineCompilerTest, givenNoRevisionIdWhenCompilerIsInitializedThenHwInfoHasDefaultRevId) {

shared/offline_compiler/source/offline_compiler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ int OfflineCompiler::parseCommandLine(size_t numArgs, const std::vector<std::str
682682
printUsage();
683683
retVal = PRINT_USAGE;
684684
} else if (("-revision_id" == currArg) && hasMoreArgs) {
685-
revisionId = std::stoi(argv[argIndex + 1]);
685+
revisionId = std::stoi(argv[argIndex + 1], nullptr, 0);
686686
argIndex++;
687687
} else {
688688
argHelper->printf("Invalid option (arg %d): %s\n", argIndex, argv[argIndex].c_str());
@@ -942,7 +942,7 @@ Usage: ocloc [compile] -file <filename> -device <device_type> [-output <filename
942942
943943
--help Print this usage message.
944944
945-
-revision_id <revision_id> Target stepping.
945+
-revision_id <revision_id> Target stepping. Can be decimal or hexadecimal value.
946946
947947
Examples :
948948
Compile file to Intel Compute GPU device binary (out = source_file_Gen9core.bin)

0 commit comments

Comments
 (0)