diff --git a/runtime/program/kernel_info.cpp b/runtime/program/kernel_info.cpp index 8636e484ca..1dec16c509 100644 --- a/runtime/program/kernel_info.cpp +++ b/runtime/program/kernel_info.cpp @@ -424,6 +424,9 @@ cl_int KernelInfo::resolveKernelInfo() { for (auto qualifierId = 0u; qualifierId < qualifierCount; qualifierId++) { if (strstr(argInfo.typeQualifierStr.c_str(), typeQualifiers[qualifierId].argTypeQualifier) != nullptr) { argInfo.typeQualifier |= typeQualifiers[qualifierId].argTypeQualifierValue; + if (argInfo.typeQualifier == CL_KERNEL_ARG_TYPE_CONST) { + argInfo.isReadOnly = true; + } } } } diff --git a/unit_tests/kernel/kernel_tests.cpp b/unit_tests/kernel/kernel_tests.cpp index 0c583f8837..9e84f8154a 100644 --- a/unit_tests/kernel/kernel_tests.cpp +++ b/unit_tests/kernel/kernel_tests.cpp @@ -409,6 +409,8 @@ TEST_F(KernelFromBinaryTests, givenArgumentDeclaredAsConstantWhenKernelIsCreated auto pKernelInfo = pProgram->getKernelInfo("simple_kernel_6"); EXPECT_TRUE(pKernelInfo->kernelArgInfo[1].isReadOnly); + pKernelInfo = pProgram->getKernelInfo("simple_kernel_1"); + EXPECT_TRUE(pKernelInfo->kernelArgInfo[0].isReadOnly); } TEST(PatchInfo, Constructor) {