En mi aplicación de edición de fotos para iOS llamada FilterBaker, uso el marco GPUImage para hacer todo el procesamiento de imágenes de manera efectiva en la GPU. ¿Sería aún más efectivo usar Metal para un acceso de bajo costo a la GPU?

El principal beneficio del metal es la velocidad.

Pero la ganancia de velocidad proviene de quitarle el trabajo a la CPU.

En muchos juegos, la CPU se convierte en el cuello de botella a medida que aumenta el número de llamadas de extracción. La GPU puede hacer frente al dibujo, pero la CPU está abrumada por el trabajo, manejando cada llamada individual.

Por lo tanto, el beneficio es más obvio para aplicaciones que realizan miles de llamadas de extracción por fotograma y cambian frecuentemente el estado de textura, etc.

Supongo que su aplicación envía una gran llamada de sorteo y el sombreador hace todo el trabajo. Si ese es el caso, probablemente no verá una gran ganancia de rendimiento.

El lenguaje Metal shader es como C ++, y parece un poco más poderoso. Pero sospecho que esa no es una razón lo suficientemente grande como para cambiar.

El uso de Metal para GPUImage aparentemente ha sido discutido brevemente por el autor, también sospechando como Glyn Williams aquí que debido a que GPUImage no hace muchas llamadas no habrá muchos beneficios:

Brad Larson @bradlarson 8 Jun 2014
Las mayores ganancias de @rfistman Metal están en la reducción de la sobrecarga de llamadas de extracción, que no es un cuello de botella de GPUImage. Sin embargo, calcular puede ser útil.

Brad Larson en Twitter (en respuesta a: “¿Alguna idea sobre Metal y GPUImage?”)