mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-29 17:13:29 +08:00
Handle implicit args buffer info in zebin
Related-To: NEO-5081, IGC-4710 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
0634aa3f1b
commit
3b7fbef826
@@ -217,6 +217,7 @@ static constexpr ConstStringRef argBypointer("arg_bypointer");
|
||||
static constexpr ConstStringRef bufferOffset("buffer_offset");
|
||||
static constexpr ConstStringRef printfBuffer("printf_buffer");
|
||||
static constexpr ConstStringRef workDimensions("work_dimensions");
|
||||
static constexpr ConstStringRef implicitArgBuffer("implicit_arg_buffer");
|
||||
} // namespace ArgType
|
||||
namespace MemoryAddressingMode {
|
||||
static constexpr ConstStringRef stateless("stateless");
|
||||
@@ -399,7 +400,8 @@ enum ArgType : uint8_t {
|
||||
ArgTypeArgBypointer,
|
||||
ArgTypeBufferOffset,
|
||||
ArgTypePrintfBuffer,
|
||||
ArgTypeWorkDimensions
|
||||
ArgTypeWorkDimensions,
|
||||
ArgTypeImplicitArgBuffer
|
||||
};
|
||||
|
||||
namespace PerThreadPayloadArgument {
|
||||
|
||||
@@ -373,6 +373,8 @@ bool readEnumChecked(const Yaml::Token *token, NEO::Elf::ZebinKernelMetadata::Ty
|
||||
out = ArgTypeT::ArgTypePrintfBuffer;
|
||||
} else if (tokenValue == PayloadArgument::ArgType::workDimensions) {
|
||||
out = ArgTypeT::ArgTypeWorkDimensions;
|
||||
} else if (tokenValue == PayloadArgument::ArgType::implicitArgBuffer) {
|
||||
out = ArgTypeT::ArgTypeImplicitArgBuffer;
|
||||
} else {
|
||||
outErrReason.append("DeviceBinaryFormat::Zebin::" + NEO::Elf::SectionsNamesZebin::zeInfo.str() + " : Unhandled \"" + tokenValue.str() + "\" argument type in context of " + context.str() + "\n");
|
||||
return false;
|
||||
@@ -904,6 +906,11 @@ NEO::DecodeError populateArgDescriptor(const NEO::Elf::ZebinKernelMetadata::Type
|
||||
dst.payloadMappings.dispatchTraits.workDim = src.offset;
|
||||
break;
|
||||
}
|
||||
case NEO::Elf::ZebinKernelMetadata::Types::Kernel::ArgTypeImplicitArgBuffer: {
|
||||
dst.payloadMappings.implicitArgs.implcitArgsBuffer = src.offset;
|
||||
dst.kernelAttributes.flags.requiresImplicitArgs = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return DecodeError::Success;
|
||||
|
||||
Reference in New Issue
Block a user