Post

Replies

Boosts

Views

Activity

sample for MPSImageCanny
Is there a working example for the new MPSImageCanny (and MPSImageEDLines) functionality ? I tried several ways (e.g. different texture sized, parameter) all leading to various errors like total freeze of my MBP under BigSur and Xcode 12.3             // Allocating sufficient space to store or data             let pointerToFloats = UnsafeMutablePointer<Float>.allocate(capacity: luminanceWeights.count)             pointerToFloats.assign(from: luminanceWeights, count: luminanceWeights.count)             let canny = MPSImageCanny(device: self.metalDevice!, linearToGrayScaleTransform: luminanceWeights, sigma: 3)             canny.useFastMode = false             canny.highThreshold = 0.8             canny.lowThreshold = 0.2 Is there any code snippet proven working I could base my work on ?
0
0
632
Jan ’21
MPSKernel MTLComputePipelineStateCache unable to load function DilateFilter4. Compiler encountered an internal error
I try to use MPSImageErode and MPSImageDilate in an app right now with SwiftUI and BigSur, Xcode 12.3 The code &#9;&#9;&#9;&#9; var erodedilateKernelValues:[Float] = [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.1, 0.0, 0.0, 0.0, 0.1, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.1, 0.0, 0.0, 0.0, 0.1, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.0, 0.0, 0.0, 0.0, 0.1, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.0, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] &#9;&#9;&#9;&#9; let dilateShader = MPSImageDilate( &#9;&#9;&#9;&#9;&#9;&#9;device: self.metalDevice!, &#9;&#9;&#9;&#9;&#9;&#9;kernelWidth:edSize, &#9;&#9;&#9;&#9;&#9;&#9; kernelHeight:edSize, &#9;&#9;&#9;&#9;&#9;&#9; values:&erodedilateKernelValues) &#9;&#9;&#9;&#9; dilateShader.encode(commandBuffer: cmdBuf, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;sourceTexture: wipTexture!, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;destinationTexture: erodila) &#9;&#9;&#9;&#9; let erodeShader = MPSImageErode( &#9;&#9;&#9;&#9;&#9;&#9;device: self.metalDevice!, &#9;&#9;&#9;&#9;&#9;&#9;kernelWidth:edSize, &#9;&#9;&#9;&#9;&#9;&#9;kernelHeight:edSize, &#9;&#9;&#9;&#9;&#9;&#9;values:&erodedilateKernelValues) &#9;&#9;&#9;&#9; &#9;&#9;&#9;&#9; erodeShader.encode(commandBuffer: cmdBuf, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;sourceTexture: erodila, &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;destinationTexture: erodila2) &#9;&#9;&#9;&#9; cmdBuf.commit() &#9;&#9;&#9;&#9; cmdBuf.waitUntilCompleted() &#9;&#9;&#9;&#9; wipTexture = erodila2 Resulting in &#9;&#9;Compiler encountered an internal error: (null) ' /AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/MetalPerformanceShaders/MetalPerformanceShaders-124.2.1/MPSCore/Utility/MPSLibrary.mm:338: failed assertion `MPSKernel MTLComputePipelineStateCache unable to load function DilateFilter4. &#9;&#9;Compiler encountered an internal error: (null) ' /AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/MetalPerformanceShaders/MetalPerformanceShaders-124.2.1/MPSCore/Utility/MPSLibrary.mm:338: failed assertion `MPSKernel MTLComputePipelineStateCache unable to load function DilateFilter4. &#9;&#9;Compiler encountered an internal error: (null) ' when I use the filter with only Zero it actually works &#9;&#9;&#9;&#9; var erodedilateKernelValues = [Float].init(repeating: 0.0, count: edSize * edSize) But I want to try different filter values to see if I can improve the analytics on an image. Any suggestions ?
3
0
1.3k
Jan ’21