mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 15:53:45 +08:00
fix: merge hasPrintfCalls and usesPrintf flags within KernelAttributes flags
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
f84a5fbee9
commit
ffb1d297c8
@@ -91,7 +91,7 @@ uint32_t resolveKernelDependencies(const ExternalFunctionInfosT &externalFunctio
|
||||
const auto &externalFunctionInfo = *externalFunctionInfos.at(funcNameToId.at(kernelDep->usedFuncName));
|
||||
kernelAttributes.barrierCount = std::max(externalFunctionInfo.barrierCount, kernelAttributes.barrierCount);
|
||||
kernelAttributes.flags.hasRTCalls |= externalFunctionInfo.hasRTCalls;
|
||||
kernelAttributes.flags.hasPrintfCalls |= externalFunctionInfo.hasPrintfCalls;
|
||||
kernelAttributes.flags.usesPrintf |= externalFunctionInfo.hasPrintfCalls;
|
||||
kernelAttributes.flags.hasIndirectCalls |= externalFunctionInfo.hasIndirectCalls;
|
||||
kernelAttributes.flags.usesAssert |= externalFunctionInfo.requireAssertBuffer;
|
||||
kernelAttributes.flags.usesSyncBuffer |= externalFunctionInfo.requireSyncBuffer;
|
||||
@@ -118,4 +118,4 @@ void DependencyResolver::resolveDependency(size_t nodeId, const std::vector<size
|
||||
}
|
||||
resolved.push_back(nodeId);
|
||||
}
|
||||
} // namespace NEO
|
||||
} // namespace NEO
|
||||
|
||||
@@ -737,7 +737,7 @@ void populateKernelExecutionEnvironment(KernelDescriptor &dst, const KernelExecu
|
||||
dst.kernelAttributes.flags.hasSample = execEnv.hasSample;
|
||||
dst.kernelAttributes.flags.requiresImplicitArgs = execEnv.requireImplicitArgBuffer;
|
||||
dst.kernelAttributes.flags.hasIndirectCalls = execEnv.hasIndirectCalls;
|
||||
dst.kernelAttributes.flags.hasPrintfCalls = execEnv.hasPrintfCalls;
|
||||
dst.kernelAttributes.flags.usesPrintf = execEnv.hasPrintfCalls;
|
||||
dst.kernelAttributes.flags.usesAssert = execEnv.requireAssertBuffer;
|
||||
dst.kernelAttributes.flags.usesSyncBuffer = execEnv.requireSyncBuffer;
|
||||
dst.kernelAttributes.barrierCount = execEnv.barrierCount;
|
||||
@@ -1394,7 +1394,6 @@ DecodeError populateKernelPayloadArgument(NEO::KernelDescriptor &dst, const Kern
|
||||
|
||||
case Types::Kernel::argTypePrintfBuffer:
|
||||
dst.kernelAttributes.flags.usesPrintf = true;
|
||||
dst.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
return populateArgPointerStateless(dst.payloadMappings.implicitArgs.printfSurfaceAddress);
|
||||
|
||||
case Types::Kernel::argTypeAssertBuffer:
|
||||
|
||||
@@ -144,8 +144,7 @@ struct KernelDescriptor : NEO::NonCopyableAndNonMovableClass {
|
||||
bool usesAssert : 1;
|
||||
// 3
|
||||
bool usesRegionGroupBarrier : 1;
|
||||
bool hasPrintfCalls : 1;
|
||||
bool reserved : 6;
|
||||
bool reserved : 7;
|
||||
};
|
||||
std::array<bool, 4> packed;
|
||||
} flags = {};
|
||||
|
||||
@@ -98,7 +98,6 @@ void MockKernelInfo::populatePointerArg(ArgDescPointer &arg, uint8_t pointerSize
|
||||
|
||||
void MockKernelInfo::setPrintfSurface(uint8_t dataParamSize, CrossThreadDataOffset crossThreadDataOffset, SurfaceStateHeapOffset sshOffset) {
|
||||
kernelDescriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernelDescriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
populatePointerArg(kernelDescriptor.payloadMappings.implicitArgs.printfSurfaceAddress, dataParamSize, crossThreadDataOffset, sshOffset);
|
||||
}
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ TEST_F(ExternalFunctionsTests, GivenValidFunctionAndKernelDependenciesWhenResolv
|
||||
EXPECT_TRUE(nameToKernelDescriptor["kernel2"]->kernelAttributes.flags.hasRTCalls);
|
||||
}
|
||||
|
||||
TEST_F(ExternalFunctionsTests, GivenValidFunctionAndKernelDependenciesWhenResolvingDependenciesThenSetAppropriateHasPrintfCallsAndReturnSuccess) {
|
||||
TEST_F(ExternalFunctionsTests, GivenValidFunctionAndKernelDependenciesWhenResolvingDependenciesThenSetAppropriateUsesPrintfFlagAndReturnSuccess) {
|
||||
addKernel("kernel0");
|
||||
addKernel("kernel1");
|
||||
addKernel("kernel2");
|
||||
@@ -304,15 +304,15 @@ TEST_F(ExternalFunctionsTests, GivenValidFunctionAndKernelDependenciesWhenResolv
|
||||
addKernelDependency("fun2", "kernel2");
|
||||
set();
|
||||
|
||||
nameToKernelDescriptor["kernel2"]->kernelAttributes.flags.hasPrintfCalls = true;
|
||||
nameToKernelDescriptor["kernel2"]->kernelAttributes.flags.usesPrintf = true;
|
||||
auto error = resolveExternalDependencies(extFuncInfo, kernelDependencies, functionDependencies, nameToKernelDescriptor);
|
||||
EXPECT_EQ(RESOLVE_SUCCESS, error);
|
||||
EXPECT_TRUE(extFuncInfo[funcNameToId["fun0"]]->hasPrintfCalls);
|
||||
EXPECT_TRUE(extFuncInfo[funcNameToId["fun1"]]->hasPrintfCalls);
|
||||
EXPECT_FALSE(extFuncInfo[funcNameToId["fun2"]]->hasPrintfCalls);
|
||||
EXPECT_TRUE(nameToKernelDescriptor["kernel0"]->kernelAttributes.flags.hasPrintfCalls);
|
||||
EXPECT_FALSE(nameToKernelDescriptor["kernel1"]->kernelAttributes.flags.hasPrintfCalls);
|
||||
EXPECT_TRUE(nameToKernelDescriptor["kernel2"]->kernelAttributes.flags.hasPrintfCalls);
|
||||
EXPECT_TRUE(nameToKernelDescriptor["kernel0"]->kernelAttributes.flags.usesPrintf);
|
||||
EXPECT_FALSE(nameToKernelDescriptor["kernel1"]->kernelAttributes.flags.usesPrintf);
|
||||
EXPECT_TRUE(nameToKernelDescriptor["kernel2"]->kernelAttributes.flags.usesPrintf);
|
||||
}
|
||||
|
||||
TEST_F(ExternalFunctionsTests, GivenValidFunctionAndKernelDependenciesWhenResolvingDependenciesThenSetAppropriateHasIndirectCallsAndReturnSuccess) {
|
||||
|
||||
@@ -3891,7 +3891,7 @@ TEST_F(decodeZeInfoKernelEntryTest, GivenMinimalExecutionEnvThenPopulateKernelDe
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.flags.hasSample, Defaults::hasSample);
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.flags.usesStatelessWrites, (false == Defaults::hasNoStatelessWrite));
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.flags.hasIndirectCalls, Defaults::hasIndirectCalls);
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.flags.hasPrintfCalls, Defaults::hasPrintfCalls);
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.flags.usesPrintf, Defaults::hasPrintfCalls);
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.barrierCount, static_cast<uint8_t>(Defaults::barrierCount));
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.binaryFormat, DeviceBinaryFormat::zebin);
|
||||
EXPECT_EQ(kernelDescriptor.kernelAttributes.bufferAddressingMode, (Defaults::has4GBBuffers) ? KernelDescriptor::Stateless : KernelDescriptor::BindfulAndStateless);
|
||||
@@ -5818,7 +5818,6 @@ TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypePrintfBufferWhenOffsetAndSizeIsV
|
||||
ASSERT_EQ(32U, printfSurfaceAddress.stateless);
|
||||
EXPECT_EQ(8U, printfSurfaceAddress.pointerSize);
|
||||
EXPECT_TRUE(kernelDescriptor->kernelAttributes.flags.usesPrintf);
|
||||
EXPECT_TRUE(kernelDescriptor->kernelAttributes.flags.hasPrintfCalls);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypeAssertBufferWhenOffsetAndSizeIsValidThenPopulatesKernelDescriptor) {
|
||||
@@ -7559,7 +7558,7 @@ kernels:
|
||||
EXPECT_TRUE(kernelDescriptor->kernelAttributes.flags.hasIndirectCalls);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenKernelWithPrintfCallsWhenPopulatingKernelDescriptorThenHasPrintfCallsIsSet) {
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenKernelWithPrintfCallsWhenPopulatingKernelDescriptorThenUsesPrintfFlagIsSet) {
|
||||
ConstStringRef zeinfo = R"===(
|
||||
kernels:
|
||||
- name : some_kernel
|
||||
@@ -7571,7 +7570,7 @@ kernels:
|
||||
auto err = decodeZeInfoKernelEntry(zeinfo);
|
||||
EXPECT_EQ(NEO::DecodeError::success, err);
|
||||
|
||||
EXPECT_TRUE(kernelDescriptor->kernelAttributes.flags.hasPrintfCalls);
|
||||
EXPECT_TRUE(kernelDescriptor->kernelAttributes.flags.usesPrintf);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenKernelRequiringAssertBufferWhenPopulatingKernelDescriptorThenUsesAssertFlagIsSet) {
|
||||
|
||||
Reference in New Issue
Block a user