diff --git a/opencl/source/kernel/kernel.cpp b/opencl/source/kernel/kernel.cpp index 8df5d752d3..785098978b 100644 --- a/opencl/source/kernel/kernel.cpp +++ b/opencl/source/kernel/kernel.cpp @@ -530,7 +530,7 @@ cl_int Kernel::getWorkGroupInfo(cl_kernel_work_group_info paramName, struct size_t3 { size_t val[3]; } requiredWorkGroupSize; - size_t localMemorySize; + cl_ulong localMemorySize; const auto &kernelDescriptor = kernelInfo.kernelDescriptor; size_t preferredWorkGroupSizeMultiple = 0; cl_ulong scratchSize; @@ -561,7 +561,7 @@ cl_int Kernel::getWorkGroupInfo(cl_kernel_work_group_info paramName, break; case CL_KERNEL_LOCAL_MEM_SIZE: - localMemorySize = static_cast(this->getSlmTotalSize()); + localMemorySize = kernelInfo.kernelDescriptor.kernelAttributes.slmInlineSize; srcSize = sizeof(localMemorySize); pSrc = &localMemorySize; break; diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index ab550b8401..f5e8a26d6d 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -312,7 +312,7 @@ TEST_F(KernelTests, GivenKernelCompileWorkGroupSizeWhenGettingWorkGroupInfoThenC EXPECT_EQ(paramValueSize, paramValueSizeRet); } -TEST_F(KernelTests, GivenRequiredDisabledEUFusionFlagWhenGettingPrefferedWorkGroupSizeMultipleThenCorrectValueIsReturned) { +TEST_F(KernelTests, GivenRequiredDisabledEUFusionFlagWhenGettingPrefferedWorkGroupSizeMultipleThenCorectValueIsReturned) { KernelInfo kernelInfo = {}; kernelInfo.kernelDescriptor.kernelAttributes.flags.requiresDisabledEUFusion = true; MockKernel kernel(pProgram, kernelInfo, *pClDevice); @@ -337,44 +337,7 @@ TEST_F(KernelTests, GivenRequiredDisabledEUFusionFlagWhenGettingPrefferedWorkGro EXPECT_EQ(expectedValue, paramValue); } -TEST_F(KernelTests, GivenSlmInlineSizeAndSlmOffsetWhenGettingWorkGroupInfoThenCorrectValueIsReturned) { - MockKernelInfo kernelInfo = {}; - kernelInfo.kernelDescriptor.kernelAttributes.slmInlineSize = 100u; - - kernelInfo.addArgLocal(0, 0x10, 0x1); - kernelInfo.addArgBuffer(1, 0x20, sizeof(void *)); - kernelInfo.addArgBuffer(2, 0x20, sizeof(void *)); - kernelInfo.addArgLocal(3, 0x30, 0x10); - - MockKernel kernel(pProgram, kernelInfo, *pClDevice); - kernel.kernelArguments.resize(4); - kernel.slmSizes.resize(4); - - uint32_t crossThreadData[0x40]{}; - crossThreadData[0x20 / sizeof(uint32_t)] = 0x12344321; - kernel.setCrossThreadData(crossThreadData, sizeof(crossThreadData)); - - kernel.setArgLocal(0, 4096, nullptr); - kernel.setArgLocal(3, 0, nullptr); - - cl_kernel_info paramName = CL_KERNEL_LOCAL_MEM_SIZE; - size_t paramValue; - size_t paramValueSize = sizeof(paramValue); - size_t paramValueSizeRet = 0; - size_t expectedValue = 4096 + 0 + 100; - - retVal = kernel.getWorkGroupInfo( - paramName, - paramValueSize, - ¶mValue, - ¶mValueSizeRet); - - EXPECT_EQ(CL_SUCCESS, retVal); - EXPECT_EQ(paramValueSize, paramValueSizeRet); - EXPECT_EQ(expectedValue, paramValue); -} - -TEST_F(KernelTests, GivenCFEFusedEUDispatchEnabledAndRequiredDisabledUEFusionWhenGettingPrefferedWorkGroupSizeMultipleThenCorrectValueIsReturned) { +TEST_F(KernelTests, GivenCFEFusedEUDispatchEnabledAndRequiredDisabledUEFusionWhenGettingPrefferedWorkGroupSizeMultipleThenCorectValueIsReturned) { DebugManagerStateRestore dbgRestorer; DebugManager.flags.CFEFusedEUDispatch.set(0);