         }
         
         let destinationTexture:MTLTexture = drawable.texture
+        let commandBuffer:MTLCommandBuffer = controller.commandQueue.makeCommandBuffer()
+        
         filterTexture(
+            commandBuffer:commandBuffer,
             sourceTexture:sourceTexture,
             destinationTexture:destinationTexture)
         commandBuffer.present(drawable)

    
    //MARK: public
    
    func filterTexture(sourceTexture:MTLTexture, destinationTexture:MTLTexture)
    {
        guard
            

            return
        }
        
        let metalFilter:MetalFilter = metalFitlerType.init(device:controller.device)
        
        metalFilter.encode(
