On 18/06/18 13:26, Jun Zhao wrote:
> after the change, use the cmd:
> ./ffmpeg -init_hw_device opencl=ocl:,device_type=gpu -loglevel 99
> in a multi-platforms/multi-devices system get more clean log like:
> 
> 2 OpenCL platforms found.
> 1 OpenCL devices found on platform "Portable Computing Language".
> 0.0: Portable Computing Language / pthread-Intel(R) Core(TM) i7-6500U CPU @ 
> 2.50GHz
> "pthread-Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz" does not match device type 
> "gpu".
> 2 OpenCL devices found on platform "Intel(R) OpenCL".
> 1.0: Intel(R) OpenCL / Intel(R) HD Graphics
> 1.1: Intel(R) OpenCL / Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
> "Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz" does not match device type "gpu".
> 
> Signed-off-by: Jun Zhao <mypopy...@gmail.com>
> ---

Why?

Currently the devices which are logged are those which have passed both the 
platform and the device filter checks (allowing successive refinement).  You 
are changing this to logging devices on every platform which passes the 
platform filter check regardless of whether they pass the device filters, which 
seems inconsistent to me.

>  libavutil/hwcontext_opencl.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c
> index 07458c2..65b4a0c 100644
> --- a/libavutil/hwcontext_opencl.c
> +++ b/libavutil/hwcontext_opencl.c
> @@ -428,7 +428,8 @@ static int opencl_filter_device(AVHWDeviceContext *hwdev,
>          }
>  
>          if (!(device_type & match_type)) {
> -            av_log(hwdev, AV_LOG_DEBUG, "device_type does not match.\n");
> +            av_log(hwdev, AV_LOG_DEBUG, "\"%s\" does not match device type 
> \"%s\".\n",
> +                   device_name, param->value);
>              return 1;
>          }
>      }
> @@ -550,6 +551,9 @@ static int 
> opencl_device_create_internal(AVHWDeviceContext *hwdev,
>              else
>                  device_name = "Unknown Device";
>  
> +            av_log(hwdev, AV_LOG_VERBOSE, "%d.%d: %s / %s\n", p, d,
> +                   platform_name, device_name);
> +
>              if (selector->filter_device) {
>                  err = selector->filter_device(hwdev, devices[d],
>                                                device_name,
> @@ -560,9 +564,6 @@ static int 
> opencl_device_create_internal(AVHWDeviceContext *hwdev,
>                      continue;
>              }
>  
> -            av_log(hwdev, AV_LOG_VERBOSE, "%d.%d: %s / %s\n", p, d,
> -                   platform_name, device_name);
> -
>              ++found;
>              platform_id      = platforms[p];
>              hwctx->device_id = devices[d];
> 
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to