CIContext createCGImage:fromRect:使用CPU时卡在信号量上

时间:2015-04-07 02:56:11

标签: objective-c swift opencl core-image

    let context = CIContext(options:[kCIContextUseSoftwareRenderer:true])
    let inputImage = CIImage(CGImage: image.CGImage)
    let filter = CIFilter(name:"CIGaussianBlur")
    filter.setValue(inputImage, forKey: kCIInputImageKey)
    let result = filter .valueForKey(kCIOutputImageKey) as CIImage
    let cgImage = context.createCGImage(result, fromRect: inputImage.extent())
    let returnImage = UIImage(CIImage: result, scale: UIScreen.mainScreen().scale, orientation: .Up)
    return returnImage!

使用GPU时代码正常工作,这意味着使用nil选项创建CIContext.But使用CPU时,代码卡在enter image description here上 - [CIContext createCGImage:fromRect:] 堆栈如下所示。似乎sdk尝试使用OpenCL进行计算但失败了。

1 个答案:

答案 0 :(得分:0)

至少在这里是一种解决方法:在iOS 8及更高版本中,您不再需要指定kCIContextUseSoftwareRenderer。