mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-10 12:53:42 +08:00
Add error handling in d3d9 sharing scenario.
Change-Id: I3f337b633514d90298f03a9fa486757026137151
This commit is contained in:

committed by
sys_ocldev

parent
121376b248
commit
07031518dc
@ -123,7 +123,12 @@ cl_mem CL_API_CALL clCreateFromDX9MediaSurfaceINTEL(cl_context context, cl_mem_f
|
||||
cl_dx9_surface_info_khr surfaceInfo = {resource, sharedHandle};
|
||||
auto ctx = castToObject<Context>(context);
|
||||
|
||||
return D3DSurface::create(ctx, &surfaceInfo, flags, 0, plane, errcodeRet);
|
||||
if (ctx) {
|
||||
return D3DSurface::create(ctx, &surfaceInfo, flags, 0, plane, errcodeRet);
|
||||
} else {
|
||||
err.set(CL_INVALID_CONTEXT);
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueAcquireDX9ObjectsINTEL(cl_command_queue commandQueue, cl_uint numObjects, const cl_mem *memObjects,
|
||||
|
@ -821,6 +821,15 @@ TEST_F(D3D9Tests, givenInvalidFlagsWhenSurfaceIsCreatedThenReturnError) {
|
||||
EXPECT_EQ(nullptr, img);
|
||||
}
|
||||
|
||||
TEST_F(D3D9Tests, givenInvalidContextWhenImageIsCreatedThenErrorIsReturned) {
|
||||
auto invalidContext = reinterpret_cast<cl_context>(this->cmdQ);
|
||||
auto retVal = CL_SUCCESS;
|
||||
|
||||
auto img = clCreateFromDX9MediaSurfaceINTEL(invalidContext, CL_MEM_READ_WRITE, surfaceInfo.resource, surfaceInfo.shared_handle, 0, &retVal);
|
||||
EXPECT_EQ(CL_INVALID_CONTEXT, retVal);
|
||||
EXPECT_EQ(nullptr, img);
|
||||
}
|
||||
|
||||
TEST_F(D3D9Tests, givenTheSameResourceAndPlaneWhenSurfaceIsCreatedThenReturnError) {
|
||||
mockSharingFcns->mockTexture2dDesc.Format = (D3DFORMAT)MAKEFOURCC('Y', 'V', '1', '2');
|
||||
surfaceInfo.shared_handle = (HANDLE)1;
|
||||
|
Reference in New Issue
Block a user