2015-10-14 14:31 GMT+08:00 Timo Rothenpieler <t...@rothenpieler.org>:
> Hi >> >> I have check the error, for some card, yes, just like what I said above, >> some cards does not support double type, so we must check the opencl >> extension: cl_khr_fp64 before the kernel compile. If the device support, >> we use GPU, else, we use CPU or use float type, Is it OK? >> >> Thanks >> Best regards >> >> > Of course, if there's a way to only fall back to floats if doubles are not > available, that'd be preferable. > Hi A simple idea is that 1. Check whether the device support cl_khr_fp64 2. Set a macro in build option. you can reference the unsharp filter, the code is as follow: snprintf(build_opts, 96, "-D LU_RADIUS_X=%d -D LU_RADIUS_Y=%d -D CH_RADIUS_X=%d -D CH_RADIUS_Y=%d", 2*unsharp->luma.steps_x+1, 2*unsharp->luma.steps_y+1, 2*unsharp->chroma.steps_x+1, 2*unsharp->chroma.steps_y+1); unsharp->opencl_ctx.program = av_opencl_compile("unsharp", build_opts); use the macro to decide whether to use double or float at the compile stage Do you think it is OK? Thanks Best regards _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel