On 12/04/2019 08:38, Song, Ruiling wrote:
>>>> +#define RELEASE_KERNEL(k)                                    \
>>>> +do {                                                         \
>>>> +    if (k) {                                                 \
>>>> +        cle = clReleaseKernel(k);                            \
>>>> +        if (cle != CL_SUCCESS)                               \
>>>> +            av_log(avctx, AV_LOG_ERROR, "Failed to release " \
>>>> +                   "kernel: %d.\n", cle);                    \
>>>> +    }                                                        \
>>>> +} while(0)
>>>
>>> This appears multiple times here and also in other filters.  Maybe it 
>>> should be a
>>> macro in opencl.h like CL_SET_KERNEL_ARG?
> Hi Mark,
> 
> I am rethinking about this problem, can we just simply call clReleaseKernel() 
> and not checking the input and the error_code.
> OpenCL spec has require implementation to check the input argument. So I 
> think we can just ignore the if-null check.

I'm not sure that's true?  The spec allows a CL_INVALID_KERNEL error, but 
doesn't offer any clear indication of when it should be returned (NULL is 
distinguished in other cases, but not here).  Random pointers certainly do 
crash implementations, so they aren't interpreting it as a requirement to 
validate the pointer generally (against some list in the context, say).

The standard ICD loader does have a null check returning CL_INVALID_KERNEL, but 
there is no requirement that it is used rather than linking to a particular ICD 
directly.

> As we are destroying the objects, is it still useful to care the error code 
> returned?

Probably not, I agree.

- Mark
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to