Ocloc: add support for hexadecimal input of revision_id

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski 2021-08-11 08:50:15 +00:00 committed by Compute-Runtime-Automation
parent 02017c6aba
commit 0e30ac71bd
2 changed files with 24 additions and 5 deletions

View File

@ -1383,7 +1383,7 @@ TEST(OfflineCompilerTest, givenDeviceSpecificKernelFileWhenCompilerIsInitialized
EXPECT_STREQ("-cl-opt-disable", mockOfflineCompiler->options.c_str()); EXPECT_STREQ("-cl-opt-disable", mockOfflineCompiler->options.c_str());
} }
TEST(OfflineCompilerTest, givenRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) { TEST(OfflineCompilerTest, givenHexadecimalRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) {
auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler()); auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler());
ASSERT_NE(nullptr, mockOfflineCompiler); ASSERT_NE(nullptr, mockOfflineCompiler);
@ -1395,11 +1395,30 @@ TEST(OfflineCompilerTest, givenRevisionIdWhenCompilerIsInitializedThenPassItToHw
"-device", "-device",
gEnvironment->devicePrefix.c_str(), gEnvironment->devicePrefix.c_str(),
"-revision_id", "-revision_id",
"3"}; "0x11"};
int retVal = mockOfflineCompiler->initialize(argv.size(), argv); int retVal = mockOfflineCompiler->initialize(argv.size(), argv);
EXPECT_EQ(OfflineCompiler::ErrorCode::SUCCESS, retVal); EXPECT_EQ(OfflineCompiler::ErrorCode::SUCCESS, retVal);
EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 3); EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 17);
}
TEST(OfflineCompilerTest, givenDecimalRevisionIdWhenCompilerIsInitializedThenPassItToHwInfo) {
auto mockOfflineCompiler = std::unique_ptr<MockOfflineCompiler>(new MockOfflineCompiler());
ASSERT_NE(nullptr, mockOfflineCompiler);
std::vector<std::string> argv = {
"ocloc",
"-q",
"-file",
"test_files/copybuffer.cl",
"-device",
gEnvironment->devicePrefix.c_str(),
"-revision_id",
"17"};
int retVal = mockOfflineCompiler->initialize(argv.size(), argv);
EXPECT_EQ(OfflineCompiler::ErrorCode::SUCCESS, retVal);
EXPECT_EQ(mockOfflineCompiler->hwInfo.platform.usRevId, 17);
} }
TEST(OfflineCompilerTest, givenNoRevisionIdWhenCompilerIsInitializedThenHwInfoHasDefaultRevId) { TEST(OfflineCompilerTest, givenNoRevisionIdWhenCompilerIsInitializedThenHwInfoHasDefaultRevId) {

View File

@ -682,7 +682,7 @@ int OfflineCompiler::parseCommandLine(size_t numArgs, const std::vector<std::str
printUsage(); printUsage();
retVal = PRINT_USAGE; retVal = PRINT_USAGE;
} else if (("-revision_id" == currArg) && hasMoreArgs) { } else if (("-revision_id" == currArg) && hasMoreArgs) {
revisionId = std::stoi(argv[argIndex + 1]); revisionId = std::stoi(argv[argIndex + 1], nullptr, 0);
argIndex++; argIndex++;
} else { } else {
argHelper->printf("Invalid option (arg %d): %s\n", argIndex, argv[argIndex].c_str()); 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
--help Print this usage message. --help Print this usage message.
-revision_id <revision_id> Target stepping. -revision_id <revision_id> Target stepping. Can be decimal or hexadecimal value.
Examples : Examples :
Compile file to Intel Compute GPU device binary (out = source_file_Gen9core.bin) Compile file to Intel Compute GPU device binary (out = source_file_Gen9core.bin)