feature implicit args: patch rt dispatch global array in implicit args buffer

handle has_rtcalls in kernels and functions in zebin

Related-To: NEO-7818
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2023-03-20 12:46:06 +00:00
committed by Compute-Runtime-Automation
parent 7e5e27f0b9
commit dd39b822d3
11 changed files with 104 additions and 48 deletions

View File

@@ -270,11 +270,12 @@ DecodeError populateExternalFunctionsMetadata(NEO::ProgramInfo &dst, NEO::Yaml::
}
if (isValid) {
NEO::ExternalFunctionInfo extFunInfo;
NEO::ExternalFunctionInfo extFunInfo{};
extFunInfo.functionName = functionName.str();
extFunInfo.barrierCount = static_cast<uint8_t>(execEnv.barrierCount);
extFunInfo.numGrfRequired = static_cast<uint16_t>(execEnv.grfCount);
extFunInfo.simdSize = static_cast<uint8_t>(execEnv.simdSize);
extFunInfo.hasRTCalls = execEnv.hasRTCalls;
dst.externalFunctions.push_back(extFunInfo);
return DecodeError::Success;
} else {
@@ -610,6 +611,8 @@ DecodeError readZeInfoExecutionEnvironment(const Yaml::YamlParser &parser, const
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.hasNoStatelessWrite, context, outErrReason);
} else if (Tags::Kernel::ExecutionEnv::hasStackCalls == key) {
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.hasStackCalls, context, outErrReason);
} else if (Tags::Kernel::ExecutionEnv::hasRTCalls == key) {
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.hasRTCalls, context, outErrReason);
} else if (Tags::Kernel::ExecutionEnv::hwPreemptionMode == key) {
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.hwPreemptionMode, context, outErrReason);
} else if (Tags::Kernel::ExecutionEnv::inlineDataPayloadSize == key) {
@@ -664,6 +667,7 @@ void populateKernelExecutionEnvironment(KernelDescriptor &dst, const KernelExecu
dst.kernelAttributes.flags.requiresDisabledEUFusion = execEnv.requireDisableEUFusion;
dst.kernelAttributes.flags.useGlobalAtomics = execEnv.hasGlobalAtomics;
dst.kernelAttributes.flags.useStackCalls = execEnv.hasStackCalls;
dst.kernelAttributes.flags.hasRTCalls = execEnv.hasRTCalls;
dst.kernelAttributes.flags.usesFencesForReadWriteImages = execEnv.hasFenceForImageAccess;
dst.kernelAttributes.flags.usesSystolicPipelineSelectMode = execEnv.hasDpas;
dst.kernelAttributes.flags.usesStatelessWrites = (false == execEnv.hasNoStatelessWrite);