Make usesStringMap flag independent of implicit args requirements

This commits removes part of condition requiring requiresImplicitArgs
flag set in kernel descriptor in order to set usesStringMap flag.

Related-To: NEO-6604
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak
2022-02-08 17:16:59 +00:00
committed by Compute-Runtime-Automation
parent ae357c79ed
commit 1390af6efe
4 changed files with 57 additions and 76 deletions

View File

@ -624,56 +624,13 @@ HWCMDTEST_P(IGFX_GEN8_CORE, EnqueueKernelPrintfTest, GivenKernelWithPrintfBlocke
}
HWTEST_P(EnqueueKernelPrintfTest, GivenKernelWithPrintfBlockedByEventWhenEventUnblockedThenOutputPrinted) {
testing::internal::CaptureStdout();
auto userEvent = make_releaseable<UserEvent>(context);
MockKernelWithInternals mockKernel(*pClDevice);
mockKernel.kernelInfo.setPrintfSurface(sizeof(uintptr_t), 0);
std::string testString = "test";
mockKernel.kernelInfo.addToPrintfStringsMap(0, testString);
cl_uint workDim = 1;
size_t globalWorkOffset[3] = {0, 0, 0};
FillValues();
cl_event blockedEvent = userEvent.get();
cl_event outEvent{};
auto retVal = pCmdQ->enqueueKernel(
mockKernel,
workDim,
globalWorkOffset,
globalWorkSize,
localWorkSize,
1,
&blockedEvent,
&outEvent);
ASSERT_EQ(CL_SUCCESS, retVal);
auto pOutEvent = castToObject<Event>(outEvent);
auto printfAllocation = reinterpret_cast<uint32_t *>(static_cast<CommandComputeKernel *>(pOutEvent->peekCommand())->peekPrintfHandler()->getSurface()->getUnderlyingBuffer());
printfAllocation[0] = 8;
printfAllocation[1] = 0;
pOutEvent->release();
userEvent->setStatus(CL_COMPLETE);
std::string output = testing::internal::GetCapturedStdout();
EXPECT_STREQ("test", output.c_str());
}
HWTEST_P(EnqueueKernelPrintfTest, GivenKernelWithImplicitArgsWhenEventUnblockedThenOutputPrinted) {
auto userEvent = make_releaseable<UserEvent>(context);
MockKernelWithInternals mockKernel(*pClDevice);
std::string testString = "test";
mockKernel.kernelInfo.addToPrintfStringsMap(0, testString);
mockKernel.kernelInfo.kernelDescriptor.kernelAttributes.flags.usesPrintf = false;
mockKernel.kernelInfo.kernelDescriptor.kernelAttributes.flags.usesStringMapForPrintf = false;
mockKernel.kernelInfo.kernelDescriptor.kernelAttributes.flags.usesStringMapForPrintf = true;
mockKernel.mockKernel->pImplicitArgs = std::make_unique<ImplicitArgs>();
*mockKernel.mockKernel->pImplicitArgs = {};