From 21aa8388bc0102c336663df3279cf0a0c0af9119 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Tue, 3 Nov 2020 10:15:21 +0100 Subject: [PATCH] Correct program binary type when building program Related-To: NEO-5001 Change-Id: Ib2915e85ab5dfaf6de146710709c7cd062c88b39 Signed-off-by: Mateusz Jablonski --- opencl/source/program/build.cpp | 1 + .../unit_test/api/cl_get_program_build_info_tests.inl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/opencl/source/program/build.cpp b/opencl/source/program/build.cpp index 13fcf97d12..d33d9f6fde 100644 --- a/opencl/source/program/build.cpp +++ b/opencl/source/program/build.cpp @@ -206,6 +206,7 @@ cl_int Program::build( for (const auto &device : deviceVector) { buildStatuses[device] = CL_BUILD_SUCCESS; } + programBinaryType = CL_PROGRAM_BINARY_TYPE_EXECUTABLE; } return retVal; diff --git a/opencl/test/unit_test/api/cl_get_program_build_info_tests.inl b/opencl/test/unit_test/api/cl_get_program_build_info_tests.inl index 1d532da445..669ae69479 100644 --- a/opencl/test/unit_test/api/cl_get_program_build_info_tests.inl +++ b/opencl/test/unit_test/api/cl_get_program_build_info_tests.inl @@ -486,6 +486,8 @@ TEST(clGetProgramBuildInfoTest, givenMultiDeviceProgramWhenBuildingForSpecificDe ASSERT_EQ(CL_SUCCESS, retVal); cl_build_status buildStatus; + cl_program_binary_type binaryType; + cl_program_binary_type expectedBinaryType = CL_PROGRAM_BINARY_TYPE_EXECUTABLE; for (const auto &device : context.getDevices()) { retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL); EXPECT_EQ(CL_SUCCESS, retVal); @@ -509,6 +511,9 @@ TEST(clGetProgramBuildInfoTest, givenMultiDeviceProgramWhenBuildingForSpecificDe retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL); EXPECT_EQ(CL_SUCCESS, retVal); EXPECT_EQ(CL_BUILD_SUCCESS, buildStatus); + retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BINARY_TYPE, sizeof(binaryType), &binaryType, NULL); + EXPECT_EQ(CL_SUCCESS, retVal); + EXPECT_EQ(expectedBinaryType, binaryType); } for (const auto &device : devicesNotForBuild) { retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL); @@ -554,6 +559,8 @@ TEST(clGetProgramBuildInfoTest, givenMultiDeviceProgramWhenBuildingWithoutInputD ASSERT_EQ(CL_SUCCESS, retVal); cl_build_status buildStatus; + cl_program_binary_type binaryType; + cl_program_binary_type expectedBinaryType = CL_PROGRAM_BINARY_TYPE_EXECUTABLE; for (const auto &device : context.getDevices()) { retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL); EXPECT_EQ(CL_SUCCESS, retVal); @@ -574,6 +581,9 @@ TEST(clGetProgramBuildInfoTest, givenMultiDeviceProgramWhenBuildingWithoutInputD retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL); EXPECT_EQ(CL_SUCCESS, retVal); EXPECT_EQ(CL_BUILD_SUCCESS, buildStatus); + retVal = clGetProgramBuildInfo(pProgram, device, CL_PROGRAM_BINARY_TYPE, sizeof(binaryType), &binaryType, NULL); + EXPECT_EQ(CL_SUCCESS, retVal); + EXPECT_EQ(expectedBinaryType, binaryType); } retVal = clReleaseProgram(pProgram);