Correct arguments verification of clEnqueueReleaseDX9ObjectsINTEL call

When clEnqueueReleaseDX9ObjectsINTEL is called and
incorrect memory objects list is passed, ensure that
api returns gracefully and proper value is returned.

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2022-08-31 17:40:48 +00:00
committed by Compute-Runtime-Automation
parent f043797f51
commit 74bf623ddb
2 changed files with 11 additions and 0 deletions

View File

@ -184,6 +184,11 @@ cl_int CL_API_CALL clEnqueueReleaseDX9ObjectsINTEL(cl_command_queue commandQueue
return retVal;
}
retVal = validateObjects(MemObjList(numObjects, memObjects));
if (retVal != CL_SUCCESS) {
return retVal;
}
for (unsigned int object = 0; object < numObjects; object++) {
auto memObject = castToObject<MemObj>(memObjects[object]);
if (!static_cast<D3DSharing<D3DTypesHelper::D3D9> *>(memObject->peekSharingHandler())->isSharedResource()) {

View File

@ -1007,6 +1007,12 @@ TEST_F(D3D9Tests, givenInvalidClMemObjectPassedOnReleaseListWhenCallIsMadeThenFa
EXPECT_EQ(CL_INVALID_MEM_OBJECT, retVal);
}
TEST_F(D3D9Tests, givenInvalidClMemObjectPassedOnReleaseDX9ObjectsWhenCallIsMadeThenFailureIsReturned) {
auto fakeObject = reinterpret_cast<cl_mem>(cmdQ);
auto retVal = clEnqueueReleaseDX9ObjectsINTEL(cmdQ, 1, &fakeObject, 0, nullptr, nullptr);
EXPECT_EQ(CL_INVALID_MEM_OBJECT, retVal);
}
TEST_F(D3D9Tests, givenResourcesCreatedFromDifferentDevicesWhenAcquireReleaseCalledThenUpdateDevice) {
mockSharingFcns->getTexture2dDescSetParams = true;
mockSharingFcns->getTexture2dDescParamsSet.textureDesc = mockSharingFcns->mockTexture2dDesc;