mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 21:18:24 +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
@@ -1343,14 +1343,12 @@ std::unique_ptr<KernelImp> KernelImp::makeDependentClone() {
|
||||
|
||||
void KernelImp::createPrintfBuffer() {
|
||||
auto &sharedState = *(this->sharedState);
|
||||
if (this->getImmutableData()->getDescriptor().kernelAttributes.flags.hasPrintfCalls) {
|
||||
if (this->getImmutableData()->getDescriptor().kernelAttributes.flags.usesPrintf) {
|
||||
sharedState.printfBuffer = PrintfHandler::createPrintfBuffer(this->module->getDevice());
|
||||
this->privateState.internalResidencyContainer.push_back(sharedState.printfBuffer);
|
||||
if (this->getImmutableData()->getDescriptor().kernelAttributes.flags.usesPrintf) {
|
||||
NEO::patchPointer(getCrossThreadDataSpan(),
|
||||
this->getImmutableData()->getDescriptor().payloadMappings.implicitArgs.printfSurfaceAddress,
|
||||
static_cast<uintptr_t>(sharedState.printfBuffer->getGpuAddressToPatch()));
|
||||
}
|
||||
NEO::patchPointer(getCrossThreadDataSpan(),
|
||||
this->getImmutableData()->getDescriptor().payloadMappings.implicitArgs.printfSurfaceAddress,
|
||||
static_cast<uintptr_t>(sharedState.printfBuffer->getGpuAddressToPatch()));
|
||||
if (privateState.pImplicitArgs) {
|
||||
privateState.pImplicitArgs->setPrintfBuffer(sharedState.printfBuffer->getGpuAddress());
|
||||
}
|
||||
|
||||
@@ -1596,7 +1596,7 @@ HWTEST_F(ImmediateCommandListTest,
|
||||
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->createPrintfBuffer();
|
||||
module->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
|
||||
@@ -239,7 +239,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfUsedWhenAppendedToC
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -258,7 +257,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfUsedWhenAppendedToC
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -282,7 +280,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfWhenAppendedToSynch
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -310,7 +307,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfWhenAppendedToAsync
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -346,7 +342,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfWhenAppendToSynchro
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -384,7 +379,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAppendedToCommandLi
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -428,7 +422,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToC
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -496,7 +489,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToC
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -559,7 +551,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAppendedToImmComman
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -587,7 +578,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToI
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -639,7 +629,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToI
|
||||
auto kernel = new Mock<KernelImp>{};
|
||||
kernel->setModule(module.get());
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
static_cast<ModuleImp *>(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr<Kernel>{kernel});
|
||||
|
||||
@@ -1889,4 +1878,4 @@ HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
} // namespace L0
|
||||
|
||||
@@ -862,7 +862,7 @@ struct CmdlistAppendLaunchKernelWithImplicitArgsTests : CmdlistAppendLaunchKerne
|
||||
kernelDescriptor->kernelAttributes.workgroupDimensionsOrder[0] = workgroupDimOrder[0];
|
||||
kernelDescriptor->kernelAttributes.workgroupDimensionsOrder[1] = workgroupDimOrder[1];
|
||||
kernelDescriptor->kernelAttributes.workgroupDimensionsOrder[2] = workgroupDimOrder[2];
|
||||
kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernelDescriptor->kernelAttributes.flags.usesPrintf = true;
|
||||
createModuleFromMockBinary(0u, false, mockKernelImmData.get());
|
||||
|
||||
auto kernel = std::make_unique<MockKernel>(module.get());
|
||||
@@ -1299,7 +1299,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenTwoKernelPrivateAllocsWhichTogether
|
||||
auto &kernelDesc = const_cast<KernelDescriptor &>(kernelImmData[i]->getDescriptor());
|
||||
kernelDesc.kernelAttributes.perHwThreadPrivateMemorySize = overAllocMinSize + static_cast<uint32_t>(i * MemoryConstants::cacheLineSize);
|
||||
kernelDesc.kernelAttributes.flags.usesPrintf = false;
|
||||
kernelDesc.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
kernelDesc.kernelMetadata.kernelName = kernelNames[i];
|
||||
}
|
||||
|
||||
@@ -1336,7 +1335,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenTwoKernelPrivateAllocsWhichDontExce
|
||||
auto &kernelDesc = const_cast<KernelDescriptor &>(kernelImmData[i]->getDescriptor());
|
||||
kernelDesc.kernelAttributes.perHwThreadPrivateMemorySize = underAllocSize;
|
||||
kernelDesc.kernelAttributes.flags.usesPrintf = false;
|
||||
kernelDesc.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
kernelDesc.kernelMetadata.kernelName = kernelNames[i];
|
||||
}
|
||||
|
||||
|
||||
@@ -278,7 +278,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonemptyAllocPrintfBufferKernelWhen
|
||||
|
||||
kernel->setModule(&module);
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
|
||||
ze_event_desc_t eventDesc = {};
|
||||
@@ -308,7 +307,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelForStackCallsWhenApp
|
||||
|
||||
kernel->setModule(&module);
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = false;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
kernel->descriptor.kernelAttributes.flags.useStackCalls = true;
|
||||
kernel->privateState.pImplicitArgs = Clonable(new ImplicitArgs());
|
||||
kernel->privateState.pImplicitArgs->v0.header.structVersion = 0;
|
||||
@@ -347,7 +345,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenEmptyAllocPrintfBufferKernelWhenApp
|
||||
|
||||
kernel->setModule(&module);
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = false;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
kernel->setGroupSize(8, 1, 1);
|
||||
|
||||
ze_event_desc_t eventDesc = {};
|
||||
@@ -376,7 +373,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonemptyAllocPrintfBufferKernelWhen
|
||||
|
||||
kernel->setModule(&module);
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernel->createPrintfBuffer();
|
||||
kernel->setGroupSize(8, 1, 1);
|
||||
|
||||
@@ -412,7 +408,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelAndStackCallsWhenApp
|
||||
|
||||
kernel->setModule(&module);
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = false;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
kernel->descriptor.kernelAttributes.flags.useStackCalls = true;
|
||||
kernel->privateState.pImplicitArgs = Clonable(new ImplicitArgs());
|
||||
kernel->privateState.pImplicitArgs->v0.header.structVersion = 0;
|
||||
@@ -455,7 +450,6 @@ HWTEST_F(CommandListAppendLaunchKernel, givenEmptyAllocPrintfBufferKernelWhenApp
|
||||
|
||||
kernel->setModule(&module);
|
||||
kernel->descriptor.kernelAttributes.flags.usesPrintf = false;
|
||||
kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
|
||||
ze_event_desc_t eventDesc = {};
|
||||
eventDesc.index = 0;
|
||||
|
||||
@@ -3824,7 +3824,6 @@ TEST_F(PrintfTest, givenKernelWithPrintfThenPrintfBufferIsCreated) {
|
||||
Mock<Module> mockModule(this->device, nullptr);
|
||||
Mock<KernelImp> mockKernel;
|
||||
mockKernel.descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
mockKernel.setModule(&mockModule);
|
||||
|
||||
EXPECT_TRUE(mockKernel.getImmutableData()->getDescriptor().kernelAttributes.flags.usesPrintf);
|
||||
@@ -3837,7 +3836,6 @@ TEST_F(PrintfTest, GivenKernelNotUsingPrintfWhenCreatingPrintfBufferThenAllocati
|
||||
Mock<Module> mockModule(this->device, nullptr);
|
||||
Mock<KernelImp> mockKernel;
|
||||
mockKernel.descriptor.kernelAttributes.flags.usesPrintf = false;
|
||||
mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = false;
|
||||
mockKernel.setModule(&mockModule);
|
||||
|
||||
mockKernel.createPrintfBuffer();
|
||||
@@ -3848,7 +3846,6 @@ TEST_F(PrintfTest, WhenCreatingPrintfBufferThenAllocationAddedToResidencyContain
|
||||
Mock<Module> mockModule(this->device, nullptr);
|
||||
Mock<KernelImp> mockKernel;
|
||||
mockKernel.descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
mockKernel.setModule(&mockModule);
|
||||
|
||||
mockKernel.createPrintfBuffer();
|
||||
@@ -3864,7 +3861,6 @@ TEST_F(PrintfTest, WhenCreatingPrintfBufferThenCrossThreadDataIsPatched) {
|
||||
Mock<Module> mockModule(this->device, nullptr);
|
||||
Mock<KernelImp> mockKernel;
|
||||
mockKernel.descriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
mockKernel.setModule(&mockModule);
|
||||
|
||||
mockKernel.descriptor.payloadMappings.implicitArgs.printfSurfaceAddress.stateless = 0;
|
||||
@@ -3906,7 +3902,6 @@ HWTEST_F(PrintfHandlerTests, givenKernelWithPrintfWhenPrintingOutputWithBlitterU
|
||||
|
||||
auto &kernelDescriptor = kernelInfo->kernelDescriptor;
|
||||
kernelDescriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernelDescriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernelDescriptor.kernelAttributes.flags.usesStringMapForPrintf = true;
|
||||
kernelDescriptor.kernelAttributes.binaryFormat = DeviceBinaryFormat::patchtokens;
|
||||
kernelDescriptor.kernelAttributes.gpuPointerSize = 8u;
|
||||
@@ -3972,7 +3967,6 @@ HWTEST_F(PrintfHandlerTests, givenPrintDebugMessagesAndKernelWithPrintfWhenBlitt
|
||||
|
||||
auto &kernelDescriptor = kernelInfo->kernelDescriptor;
|
||||
kernelDescriptor.kernelAttributes.flags.usesPrintf = true;
|
||||
kernelDescriptor.kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernelDescriptor.kernelAttributes.flags.usesStringMapForPrintf = true;
|
||||
kernelDescriptor.kernelAttributes.binaryFormat = DeviceBinaryFormat::patchtokens;
|
||||
kernelDescriptor.kernelAttributes.gpuPointerSize = 8u;
|
||||
@@ -4011,7 +4005,6 @@ TEST_F(KernelPatchtokensPrintfStringMapTests, givenKernelWithPrintfStringsMapUsa
|
||||
|
||||
auto kernelDescriptor = mockKernelImmData->kernelDescriptor;
|
||||
kernelDescriptor->kernelAttributes.flags.usesPrintf = true;
|
||||
kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernelDescriptor->kernelAttributes.flags.usesStringMapForPrintf = true;
|
||||
kernelDescriptor->kernelAttributes.binaryFormat = DeviceBinaryFormat::patchtokens;
|
||||
std::string expectedString("test123");
|
||||
@@ -4040,7 +4033,6 @@ TEST_F(KernelPatchtokensPrintfStringMapTests, givenKernelWithPrintfStringsMapUsa
|
||||
|
||||
auto kernelDescriptor = mockKernelImmData->kernelDescriptor;
|
||||
kernelDescriptor->kernelAttributes.flags.usesPrintf = true;
|
||||
kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernelDescriptor->kernelAttributes.flags.usesStringMapForPrintf = false;
|
||||
kernelDescriptor->kernelAttributes.flags.requiresImplicitArgs = false;
|
||||
kernelDescriptor->kernelAttributes.binaryFormat = DeviceBinaryFormat::patchtokens;
|
||||
@@ -4070,7 +4062,6 @@ TEST_F(KernelPatchtokensPrintfStringMapTests, givenKernelWithPrintfStringsMapUsa
|
||||
|
||||
auto kernelDescriptor = mockKernelImmData->kernelDescriptor;
|
||||
kernelDescriptor->kernelAttributes.flags.usesPrintf = true;
|
||||
kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = true;
|
||||
kernelDescriptor->kernelAttributes.flags.usesStringMapForPrintf = false;
|
||||
kernelDescriptor->kernelAttributes.flags.requiresImplicitArgs = true;
|
||||
kernelDescriptor->kernelAttributes.binaryFormat = DeviceBinaryFormat::patchtokens;
|
||||
@@ -4101,7 +4092,6 @@ TEST_F(KernelImplicitArgTests, givenKernelWithoutPrintfCallsWithImplicitArgsWhen
|
||||
std::unique_ptr<MockImmutableData> mockKernelImmData = std::make_unique<MockImmutableData>(0u);
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.requiresImplicitArgs = true;
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.usesPrintf = false;
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = false;
|
||||
|
||||
createModuleFromMockBinary(0u, false, mockKernelImmData.get());
|
||||
|
||||
@@ -4123,8 +4113,7 @@ TEST_F(KernelImplicitArgTests, givenKernelWithoutPrintfCallsWithImplicitArgsWhen
|
||||
TEST_F(KernelImplicitArgTests, givenKernelWithPrintfCallsWithImplicitArgsWhenInitializeThenPrintfSurfaceIsCreatedAndProperlyPatchedInImplicitArgs) {
|
||||
std::unique_ptr<MockImmutableData> mockKernelImmData = std::make_unique<MockImmutableData>(0u);
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.requiresImplicitArgs = true;
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.usesPrintf = false;
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = true;
|
||||
mockKernelImmData->kernelDescriptor->kernelAttributes.flags.usesPrintf = true;
|
||||
|
||||
createModuleFromMockBinary(0u, false, mockKernelImmData.get());
|
||||
|
||||
|
||||
@@ -1729,7 +1729,7 @@ void Kernel::unsetArg(uint32_t argIndex) {
|
||||
}
|
||||
|
||||
bool Kernel::hasPrintfOutput() const {
|
||||
return kernelInfo.kernelDescriptor.kernelAttributes.flags.hasPrintfCalls;
|
||||
return kernelInfo.kernelDescriptor.kernelAttributes.flags.usesPrintf;
|
||||
}
|
||||
|
||||
void Kernel::resetSharedObjectsPatchAddresses() {
|
||||
|
||||
@@ -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