Revert "Forbid to rebuild program"
This reverts commit aa957370da
.
Change-Id: Ie935cfe1b3b70023e520042bce5f341ae6b39271
This commit is contained in:
parent
324b1f5c60
commit
23601a8c59
|
@ -1467,11 +1467,7 @@ cl_int CL_API_CALL clBuildProgram(cl_program program,
|
|||
auto pProgram = castToObject<Program>(program);
|
||||
|
||||
if (pProgram) {
|
||||
if (pProgram->getBuildStatus() == CL_BUILD_SUCCESS) {
|
||||
retVal = CL_INVALID_OPERATION;
|
||||
} else {
|
||||
retVal = pProgram->build(numDevices, deviceList, options, funcNotify, userData, clCacheEnabled);
|
||||
}
|
||||
retVal = pProgram->build(numDevices, deviceList, options, funcNotify, userData, clCacheEnabled);
|
||||
}
|
||||
|
||||
TRACING_EXIT(clBuildProgram, &retVal);
|
||||
|
|
|
@ -118,7 +118,7 @@ TEST_F(clCreateProgramWithILKHRTests, GivenCorrectParametersWhenCreatingProgramW
|
|||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
||||
TEST_F(clCreateProgramWithILKHRTests, GivenProgramCreatedWithILWhenBuildAfterBuildIsCalledThenReturnInvalidOperation) {
|
||||
TEST_F(clCreateProgramWithILKHRTests, GivenProgramCreatedWithILWhenBuildAfterBuildIsCalledThenReturnSuccess) {
|
||||
const uint32_t spirv[16] = {0x03022307};
|
||||
cl_int err = CL_INVALID_VALUE;
|
||||
cl_program program = clCreateProgramWithIL(pContext, spirv, sizeof(spirv), &err);
|
||||
|
@ -127,7 +127,7 @@ TEST_F(clCreateProgramWithILKHRTests, GivenProgramCreatedWithILWhenBuildAfterBui
|
|||
err = clBuildProgram(program, 0, nullptr, "", nullptr, nullptr);
|
||||
EXPECT_EQ(CL_SUCCESS, err);
|
||||
err = clBuildProgram(program, 0, nullptr, "", nullptr, nullptr);
|
||||
EXPECT_EQ(CL_INVALID_OPERATION, err);
|
||||
EXPECT_EQ(CL_SUCCESS, err);
|
||||
retVal = clReleaseProgram(program);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
|
|
@ -43,82 +43,59 @@ TEST_F(clGetProgramBuildInfoTests, givenSourceWhenclGetProgramBuildInfoIsCalledT
|
|||
ASSERT_NE(0u, sourceSize);
|
||||
ASSERT_NE(nullptr, pSource);
|
||||
|
||||
{
|
||||
const char *sources[1] = {pSource.get()};
|
||||
pProgram = clCreateProgramWithSource(
|
||||
pContext,
|
||||
1,
|
||||
sources,
|
||||
&sourceSize,
|
||||
&retVal);
|
||||
const char *sources[1] = {pSource.get()};
|
||||
pProgram = clCreateProgramWithSource(
|
||||
pContext,
|
||||
1,
|
||||
sources,
|
||||
&sourceSize,
|
||||
&retVal);
|
||||
|
||||
EXPECT_NE(nullptr, pProgram);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_NE(nullptr, pProgram);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
cl_build_status buildStatus;
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_NONE, buildStatus);
|
||||
cl_build_status buildStatus;
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_NONE, buildStatus);
|
||||
|
||||
retVal = clCompileProgram(
|
||||
pProgram,
|
||||
num_devices,
|
||||
devices,
|
||||
nullptr,
|
||||
0,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr);
|
||||
retVal = clCompileProgram(
|
||||
pProgram,
|
||||
num_devices,
|
||||
devices,
|
||||
nullptr,
|
||||
0,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr);
|
||||
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_SUCCESS, buildStatus);
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_SUCCESS, buildStatus);
|
||||
|
||||
retVal = clReleaseProgram(pProgram);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
retVal = clBuildProgram(
|
||||
pProgram,
|
||||
num_devices,
|
||||
devices,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr);
|
||||
|
||||
{
|
||||
const char *sources[1] = {pSource.get()};
|
||||
pProgram = clCreateProgramWithSource(
|
||||
pContext,
|
||||
1,
|
||||
sources,
|
||||
&sourceSize,
|
||||
&retVal);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
EXPECT_NE(nullptr, pProgram);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
cl_build_status buildStatus;
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_NONE, buildStatus);
|
||||
|
||||
retVal = clBuildProgram(
|
||||
pProgram,
|
||||
num_devices,
|
||||
devices,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr);
|
||||
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_SUCCESS, buildStatus);
|
||||
|
||||
retVal = clReleaseProgram(pProgram);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
retVal = clGetProgramBuildInfo(pProgram, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, sizeof(buildStatus), &buildStatus, NULL);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(CL_BUILD_SUCCESS, buildStatus);
|
||||
|
||||
// try to get program build info for invalid program object - should fail
|
||||
retVal = clGetProgramBuildInfo(nullptr, devices[testedRootDeviceIndex], CL_PROGRAM_BUILD_STATUS, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(CL_INVALID_PROGRAM, retVal);
|
||||
|
||||
retVal = clReleaseProgram(pProgram);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
||||
TEST_F(clGetProgramBuildInfoTests, givenElfBinaryWhenclGetProgramBuildInfoIsCalledThenReturnClBuildNone) {
|
||||
|
|
Loading…
Reference in New Issue