fix(zebin): use arg type name without size

OpenCL expects args type names without additional information (type size).
- Use only the part up to the delimiter, without quotes

Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak 2022-11-08 14:33:20 +00:00 committed by Compute-Runtime-Automation
parent 481cf36ad1
commit 4d6bb9a807
2 changed files with 9 additions and 7 deletions

View File

@ -1576,7 +1576,8 @@ NEO::DecodeError readKernelMiscArgumentInfos(const NEO::Yaml::YamlParser &parser
} else if (key == Elf::ZebinKernelMetadata::Tags::KernelMiscInfo::ArgsInfo::index) { } else if (key == Elf::ZebinKernelMetadata::Tags::KernelMiscInfo::ArgsInfo::index) {
validArgInfo &= parser.readValueChecked(singleArgInfoMember, metadataExtended.index); validArgInfo &= parser.readValueChecked(singleArgInfoMember, metadataExtended.index);
} else if (key == Elf::ZebinKernelMetadata::Tags::KernelMiscInfo::ArgsInfo::typeName) { } else if (key == Elf::ZebinKernelMetadata::Tags::KernelMiscInfo::ArgsInfo::typeName) {
validArgInfo &= readZeInfoValueChecked(parser, singleArgInfoMember, metadataExtended.typeName, Elf::ZebinKernelMetadata::Tags::kernelMiscInfo, outErrReason); metadataExtended.typeName = parser.readValueNoQuotes(singleArgInfoMember).str();
validArgInfo &= (false == metadataExtended.typeName.empty());
} else if (key == Elf::ZebinKernelMetadata::Tags::KernelMiscInfo::ArgsInfo::typeQualifiers) { } else if (key == Elf::ZebinKernelMetadata::Tags::KernelMiscInfo::ArgsInfo::typeQualifiers) {
validArgInfo &= readZeInfoValueChecked(parser, singleArgInfoMember, metadataExtended.typeQualifiers, Elf::ZebinKernelMetadata::Tags::kernelMiscInfo, outErrReason); validArgInfo &= readZeInfoValueChecked(parser, singleArgInfoMember, metadataExtended.typeQualifiers, Elf::ZebinKernelMetadata::Tags::kernelMiscInfo, outErrReason);
} else { } else {
@ -1613,8 +1614,9 @@ void populateKernelMiscInfo(KernelDescriptor &dst, KernelMiscArgInfos &kernelMis
dstTypeTraits.accessQualifier = KernelArgMetadata::parseAccessQualifier(dstMetadata.accessQualifier); dstTypeTraits.accessQualifier = KernelArgMetadata::parseAccessQualifier(dstMetadata.accessQualifier);
dstTypeTraits.addressQualifier = KernelArgMetadata::parseAddressSpace(dstMetadata.addressQualifier); dstTypeTraits.addressQualifier = KernelArgMetadata::parseAddressSpace(dstMetadata.addressQualifier);
dstTypeTraits.typeQualifiers = KernelArgMetadata::parseTypeQualifiers(dstMetadata.typeQualifiers); dstTypeTraits.typeQualifiers = KernelArgMetadata::parseTypeQualifiers(dstMetadata.typeQualifiers);
dst.payloadMappings.explicitArgs.at(srcMetadata.index).getTraits() = std::move(dstTypeTraits); dst.payloadMappings.explicitArgs.at(srcMetadata.index).getTraits() = std::move(dstTypeTraits);
dstMetadata.type = dstMetadata.type.substr(0U, dstMetadata.type.find(";"));
dst.explicitArgsExtendedMetadata.at(srcMetadata.index) = std::move(dstMetadata); dst.explicitArgsExtendedMetadata.at(srcMetadata.index) = std::move(dstMetadata);
} }
} }

View File

@ -593,7 +593,7 @@ kernels_misc_info:
EXPECT_STREQ(kernel1ArgInfo1.argName.c_str(), "a"); EXPECT_STREQ(kernel1ArgInfo1.argName.c_str(), "a");
EXPECT_STREQ(kernel1ArgInfo1.addressQualifier.c_str(), "__global"); EXPECT_STREQ(kernel1ArgInfo1.addressQualifier.c_str(), "__global");
EXPECT_STREQ(kernel1ArgInfo1.accessQualifier.c_str(), "NONE"); EXPECT_STREQ(kernel1ArgInfo1.accessQualifier.c_str(), "NONE");
EXPECT_STREQ(kernel1ArgInfo1.type.c_str(), "'int*;8'"); EXPECT_STREQ(kernel1ArgInfo1.type.c_str(), "int*");
EXPECT_STREQ(kernel1ArgInfo1.typeQualifiers.c_str(), "NONE"); EXPECT_STREQ(kernel1ArgInfo1.typeQualifiers.c_str(), "NONE");
const auto &kernel1ArgTraits1 = kernel1Info->kernelDescriptor.payloadMappings.explicitArgs.at(0).getTraits(); const auto &kernel1ArgTraits1 = kernel1Info->kernelDescriptor.payloadMappings.explicitArgs.at(0).getTraits();
@ -608,7 +608,7 @@ kernels_misc_info:
EXPECT_STREQ(kernel2ArgInfo1.argName.c_str(), "a"); EXPECT_STREQ(kernel2ArgInfo1.argName.c_str(), "a");
EXPECT_STREQ(kernel2ArgInfo1.addressQualifier.c_str(), "__global"); EXPECT_STREQ(kernel2ArgInfo1.addressQualifier.c_str(), "__global");
EXPECT_STREQ(kernel2ArgInfo1.accessQualifier.c_str(), "NONE"); EXPECT_STREQ(kernel2ArgInfo1.accessQualifier.c_str(), "NONE");
EXPECT_STREQ(kernel2ArgInfo1.type.c_str(), "'int*;8'"); EXPECT_STREQ(kernel2ArgInfo1.type.c_str(), "int*");
EXPECT_STREQ(kernel2ArgInfo1.typeQualifiers.c_str(), "NONE"); EXPECT_STREQ(kernel2ArgInfo1.typeQualifiers.c_str(), "NONE");
const auto &kernel2ArgTraits1 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(0).getTraits(); const auto &kernel2ArgTraits1 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(0).getTraits();
@ -622,7 +622,7 @@ kernels_misc_info:
EXPECT_STREQ(kernel2ArgInfo2.argName.c_str(), "b"); EXPECT_STREQ(kernel2ArgInfo2.argName.c_str(), "b");
EXPECT_STREQ(kernel2ArgInfo2.addressQualifier.c_str(), "__private"); EXPECT_STREQ(kernel2ArgInfo2.addressQualifier.c_str(), "__private");
EXPECT_STREQ(kernel2ArgInfo2.accessQualifier.c_str(), "NONE"); EXPECT_STREQ(kernel2ArgInfo2.accessQualifier.c_str(), "NONE");
EXPECT_STREQ(kernel2ArgInfo2.type.c_str(), "'int;4'"); EXPECT_STREQ(kernel2ArgInfo2.type.c_str(), "int");
EXPECT_STREQ(kernel2ArgInfo2.typeQualifiers.c_str(), "NONE"); EXPECT_STREQ(kernel2ArgInfo2.typeQualifiers.c_str(), "NONE");
const auto &kernel2ArgTraits2 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(1).getTraits(); const auto &kernel2ArgTraits2 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(1).getTraits();
@ -636,7 +636,7 @@ kernels_misc_info:
EXPECT_STREQ(kernel2ArgInfo3.argName.c_str(), "c"); EXPECT_STREQ(kernel2ArgInfo3.argName.c_str(), "c");
EXPECT_STREQ(kernel2ArgInfo3.addressQualifier.c_str(), "__global"); EXPECT_STREQ(kernel2ArgInfo3.addressQualifier.c_str(), "__global");
EXPECT_STREQ(kernel2ArgInfo3.accessQualifier.c_str(), "NONE"); EXPECT_STREQ(kernel2ArgInfo3.accessQualifier.c_str(), "NONE");
EXPECT_STREQ(kernel2ArgInfo3.type.c_str(), "'uint*;8'"); EXPECT_STREQ(kernel2ArgInfo3.type.c_str(), "uint*");
EXPECT_STREQ(kernel2ArgInfo3.typeQualifiers.c_str(), "const"); EXPECT_STREQ(kernel2ArgInfo3.typeQualifiers.c_str(), "const");
const auto &kernel2ArgTraits3 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(2).getTraits(); const auto &kernel2ArgTraits3 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(2).getTraits();
@ -650,7 +650,7 @@ kernels_misc_info:
EXPECT_STREQ(kernel2ArgInfo4.argName.c_str(), "imageA"); EXPECT_STREQ(kernel2ArgInfo4.argName.c_str(), "imageA");
EXPECT_STREQ(kernel2ArgInfo4.addressQualifier.c_str(), "__global"); EXPECT_STREQ(kernel2ArgInfo4.addressQualifier.c_str(), "__global");
EXPECT_STREQ(kernel2ArgInfo4.accessQualifier.c_str(), "__read_only"); EXPECT_STREQ(kernel2ArgInfo4.accessQualifier.c_str(), "__read_only");
EXPECT_STREQ(kernel2ArgInfo4.type.c_str(), "'image2d_t;8'"); EXPECT_STREQ(kernel2ArgInfo4.type.c_str(), "image2d_t");
EXPECT_STREQ(kernel2ArgInfo4.typeQualifiers.c_str(), "NONE"); EXPECT_STREQ(kernel2ArgInfo4.typeQualifiers.c_str(), "NONE");
const auto &kernel2ArgTraits4 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(3).getTraits(); const auto &kernel2ArgTraits4 = kernel2Info->kernelDescriptor.payloadMappings.explicitArgs.at(3).getTraits();