diff --git a/level_zero/core/source/kernel/kernel_imp.cpp b/level_zero/core/source/kernel/kernel_imp.cpp index 86909a5b04..6c643a8553 100644 --- a/level_zero/core/source/kernel/kernel_imp.cpp +++ b/level_zero/core/source/kernel/kernel_imp.cpp @@ -1343,7 +1343,7 @@ std::unique_ptr KernelImp::makeDependentClone() { void KernelImp::createPrintfBuffer() { auto &sharedState = *(this->sharedState); - if (this->getImmutableData()->getDescriptor().kernelAttributes.flags.usesPrintf || privateState.pImplicitArgs) { + if (this->getImmutableData()->getDescriptor().kernelAttributes.flags.hasPrintfCalls) { sharedState.printfBuffer = PrintfHandler::createPrintfBuffer(this->module->getDevice()); this->privateState.internalResidencyContainer.push_back(sharedState.printfBuffer); if (this->getImmutableData()->getDescriptor().kernelAttributes.flags.usesPrintf) { diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp index e4cb5eeb8a..94bc8c6b61 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_4.cpp @@ -1596,7 +1596,7 @@ HWTEST_F(ImmediateCommandListTest, auto kernel = new Mock{}; kernel->setModule(module.get()); - kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); module->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp index a35005459d..fed4abeddf 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_1.cpp @@ -239,6 +239,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfUsedWhenAppendedToC auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -257,6 +258,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfUsedWhenAppendedToC auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -280,6 +282,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfWhenAppendedToSynch auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -307,6 +310,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfWhenAppendedToAsync auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -342,6 +346,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfWhenAppendToSynchro auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -379,6 +384,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAppendedToCommandLi auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -422,6 +428,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToC auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -489,6 +496,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToC auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -551,6 +559,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAppendedToImmComman auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -578,6 +587,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToI auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); @@ -629,6 +639,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenKernelWithPrintfAndEventAppendedToI auto kernel = new Mock{}; kernel->setModule(module.get()); kernel->descriptor.kernelAttributes.flags.usesPrintf = true; + kernel->descriptor.kernelAttributes.flags.hasPrintfCalls = true; kernel->createPrintfBuffer(); static_cast(module.get())->getPrintfKernelContainer().push_back(std::shared_ptr{kernel}); diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_2.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_2.cpp index 31bd38041b..79ab38c74b 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_2.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_2.cpp @@ -862,6 +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; createModuleFromMockBinary(0u, false, mockKernelImmData.get()); auto kernel = std::make_unique(module.get()); @@ -1298,6 +1299,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenTwoKernelPrivateAllocsWhichTogether auto &kernelDesc = const_cast(kernelImmData[i]->getDescriptor()); kernelDesc.kernelAttributes.perHwThreadPrivateMemorySize = overAllocMinSize + static_cast(i * MemoryConstants::cacheLineSize); kernelDesc.kernelAttributes.flags.usesPrintf = false; + kernelDesc.kernelAttributes.flags.hasPrintfCalls = false; kernelDesc.kernelMetadata.kernelName = kernelNames[i]; } @@ -1334,6 +1336,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenTwoKernelPrivateAllocsWhichDontExce auto &kernelDesc = const_cast(kernelImmData[i]->getDescriptor()); kernelDesc.kernelAttributes.perHwThreadPrivateMemorySize = underAllocSize; kernelDesc.kernelAttributes.flags.usesPrintf = false; + kernelDesc.kernelAttributes.flags.hasPrintfCalls = false; kernelDesc.kernelMetadata.kernelName = kernelNames[i]; } diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp index c26f1ac1fe..a354cd5cf2 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp @@ -278,6 +278,7 @@ 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 = {}; @@ -294,7 +295,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonemptyAllocPrintfBufferKernelWhen ASSERT_FALSE(event->getKernelForPrintf().expired()); } -HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelWithPrintfBufferCreatedForStackCallsWhenAppendingLaunchKernelIndirectThenKernelIsStoredOnEvent) { +HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelForStackCallsWhenAppendingLaunchKernelIndirectThenKernelIsStoredOnEvent) { Mock module(this->device, nullptr); auto kernel = new Mock<::L0::KernelImp>{}; static_cast(&module)->getPrintfKernelContainer().push_back(std::shared_ptr>{kernel}); @@ -307,6 +308,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelWithPrintfBufferCrea 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; @@ -329,8 +331,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelWithPrintfBufferCrea auto result = commandList->appendLaunchKernelIndirect(kernel->toHandle(), groupCount, event->toHandle(), 0, nullptr, false); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - EXPECT_NE(0u, printfContainer.size()); - ASSERT_FALSE(event->getKernelForPrintf().expired()); + EXPECT_EQ(0u, printfContainer.size()); } HWTEST_F(CommandListAppendLaunchKernel, givenEmptyAllocPrintfBufferKernelWhenAppendingLaunchKernelIndirectThenKernelIsNotStoredOnEvent) { @@ -346,6 +347,7 @@ 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 = {}; @@ -374,6 +376,7 @@ 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); @@ -397,7 +400,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonemptyAllocPrintfBufferKernelWhen ASSERT_FALSE(event->getKernelForPrintf().expired()); } -HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelAndPrintfBufferForStackCallsWhenAppendingLaunchKernelWithParamThenKernelIsStoredOnEvent) { +HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelAndStackCallsWhenAppendingLaunchKernelWithParamThenKernelIsStoredOnEvent) { Mock module(this->device, nullptr); auto kernel = new Mock<::L0::KernelImp>{}; static_cast(&module)->getPrintfKernelContainer().push_back(std::shared_ptr>{kernel}); @@ -409,6 +412,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelAndPrintfBufferForSt 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; @@ -436,9 +440,7 @@ HWTEST_F(CommandListAppendLaunchKernel, givenNonPrintfKernelAndPrintfBufferForSt auto result = pCommandList->appendLaunchKernelWithParams(kernel, groupCount, event.get(), launchParams); EXPECT_EQ(ZE_RESULT_SUCCESS, result); - EXPECT_NE(0u, printfContainer.size()); - - ASSERT_FALSE(event->getKernelForPrintf().expired()); + EXPECT_EQ(0u, printfContainer.size()); } HWTEST_F(CommandListAppendLaunchKernel, givenEmptyAllocPrintfBufferKernelWhenAppendingLaunchKernelWithParamThenKernelIsNotStoredOnEvent) { @@ -453,6 +455,7 @@ 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; diff --git a/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp b/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp index 500f2dc2fd..afc7a944b8 100644 --- a/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp +++ b/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp @@ -3824,6 +3824,7 @@ TEST_F(PrintfTest, givenKernelWithPrintfThenPrintfBufferIsCreated) { Mock mockModule(this->device, nullptr); Mock mockKernel; mockKernel.descriptor.kernelAttributes.flags.usesPrintf = true; + mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = true; mockKernel.setModule(&mockModule); EXPECT_TRUE(mockKernel.getImmutableData()->getDescriptor().kernelAttributes.flags.usesPrintf); @@ -3836,6 +3837,7 @@ TEST_F(PrintfTest, GivenKernelNotUsingPrintfWhenCreatingPrintfBufferThenAllocati Mock mockModule(this->device, nullptr); Mock mockKernel; mockKernel.descriptor.kernelAttributes.flags.usesPrintf = false; + mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = false; mockKernel.setModule(&mockModule); mockKernel.createPrintfBuffer(); @@ -3846,6 +3848,7 @@ TEST_F(PrintfTest, WhenCreatingPrintfBufferThenAllocationAddedToResidencyContain Mock mockModule(this->device, nullptr); Mock mockKernel; mockKernel.descriptor.kernelAttributes.flags.usesPrintf = true; + mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = true; mockKernel.setModule(&mockModule); mockKernel.createPrintfBuffer(); @@ -3861,6 +3864,7 @@ TEST_F(PrintfTest, WhenCreatingPrintfBufferThenCrossThreadDataIsPatched) { Mock mockModule(this->device, nullptr); Mock mockKernel; mockKernel.descriptor.kernelAttributes.flags.usesPrintf = true; + mockKernel.descriptor.kernelAttributes.flags.hasPrintfCalls = true; mockKernel.setModule(&mockModule); mockKernel.descriptor.payloadMappings.implicitArgs.printfSurfaceAddress.stateless = 0; @@ -3902,6 +3906,7 @@ 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; @@ -3967,6 +3972,7 @@ 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; @@ -4005,6 +4011,7 @@ 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"); @@ -4033,6 +4040,7 @@ 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; @@ -4062,6 +4070,7 @@ 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; @@ -4088,10 +4097,34 @@ TEST_F(KernelPatchtokensPrintfStringMapTests, givenKernelWithPrintfStringsMapUsa using KernelImplicitArgTests = Test; -TEST_F(KernelImplicitArgTests, givenKernelWithImplicitArgsWhenInitializeThenPrintfSurfaceIsCreatedAndProperlyPatchedInImplicitArgs) { +TEST_F(KernelImplicitArgTests, givenKernelWithoutPrintfCallsWithImplicitArgsWhenInitializeThenPrintfSurfaceIsNotCreatedAndProperlyPatchedInImplicitArgs) { std::unique_ptr mockKernelImmData = std::make_unique(0u); mockKernelImmData->kernelDescriptor->kernelAttributes.flags.requiresImplicitArgs = true; mockKernelImmData->kernelDescriptor->kernelAttributes.flags.usesPrintf = false; + mockKernelImmData->kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = false; + + createModuleFromMockBinary(0u, false, mockKernelImmData.get()); + + auto kernel = std::make_unique(module.get()); + + ze_kernel_desc_t kernelDesc{ZE_STRUCTURE_TYPE_KERNEL_DESC}; + kernel->initialize(&kernelDesc); + + EXPECT_TRUE(kernel->getKernelDescriptor().kernelAttributes.flags.requiresImplicitArgs); + auto pImplicitArgs = kernel->getImplicitArgs(); + ASSERT_NE(nullptr, pImplicitArgs); + + auto printfSurface = kernel->getPrintfBufferAllocation(); + ASSERT_EQ(nullptr, printfSurface); + + EXPECT_EQ(0u, pImplicitArgs->v0.printfBufferPtr); +} + +TEST_F(KernelImplicitArgTests, givenKernelWithPrintfCallsWithImplicitArgsWhenInitializeThenPrintfSurfaceIsCreatedAndProperlyPatchedInImplicitArgs) { + std::unique_ptr mockKernelImmData = std::make_unique(0u); + mockKernelImmData->kernelDescriptor->kernelAttributes.flags.requiresImplicitArgs = true; + mockKernelImmData->kernelDescriptor->kernelAttributes.flags.usesPrintf = false; + mockKernelImmData->kernelDescriptor->kernelAttributes.flags.hasPrintfCalls = true; createModuleFromMockBinary(0u, false, mockKernelImmData.get()); @@ -4191,7 +4224,7 @@ TEST_F(KernelImplicitArgTests, givenKernelWithImplicitArgsWhenSettingKernelParam expectedImplicitArgs.groupCountX = 3; expectedImplicitArgs.groupCountY = 2; expectedImplicitArgs.groupCountZ = 1; - expectedImplicitArgs.printfBufferPtr = kernel->getPrintfBufferAllocation()->getGpuAddress(); + expectedImplicitArgs.printfBufferPtr = 0ull; kernel->setGroupSize(4, 5, 6); kernel->setGroupCount(3, 2, 1); diff --git a/opencl/source/kernel/kernel.cpp b/opencl/source/kernel/kernel.cpp index e68b8e1216..d4abe4f1e3 100644 --- a/opencl/source/kernel/kernel.cpp +++ b/opencl/source/kernel/kernel.cpp @@ -1729,7 +1729,7 @@ void Kernel::unsetArg(uint32_t argIndex) { } bool Kernel::hasPrintfOutput() const { - return kernelInfo.kernelDescriptor.kernelAttributes.flags.usesPrintf; + return kernelInfo.kernelDescriptor.kernelAttributes.flags.hasPrintfCalls; } void Kernel::resetSharedObjectsPatchAddresses() { diff --git a/shared/test/common/mocks/mock_kernel_info.cpp b/shared/test/common/mocks/mock_kernel_info.cpp index 5853ad7d1e..8caf8ba089 100644 --- a/shared/test/common/mocks/mock_kernel_info.cpp +++ b/shared/test/common/mocks/mock_kernel_info.cpp @@ -98,6 +98,7 @@ 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); }