Aparentemente, en Flash 10, puede usar la GPU para calcular los sombreadores y, si el usuario no tiene un gpu compatible, vuelve a la CPU. El problema es que la CPU es muy lenta para calcular los filtros, sería bueno detectar si no puede usar la GPU y usar menos efectos. ¿Es posible detectar usando actionscript si está usando renderizado gpu?Detección de procesamiento de GPU en Flash Player 10
Respuesta
Para detectar la aceleración de GPU se puede leer la propiedad wmodeGPU etapa.
Por lo que yo sé no hay ninguna API para esto, yo creo que por eso Adobe recomienda limitar su uso a 1 SWF por página HTML y desalienta su uso en banners, etc., ya que puede ser muy caro para CPU/memoria.
Supongo que una solución acertada es dejar que los usuarios elijan.
Adobe se basa en OpenGL en plataformas que no son de Windows para usar aceleración de hardware y no existe tal distinción en OpenGL. Para mantener la coherencia entre las plataformas (que es uno de los puntos fuertes de Flash), es un comportamiento deseable.
Por qué no medir el tiempo que se tarda en hacer algo, y si se tardó demasiado, se desactivan algunos efectos.
En ActionScript 3 existe la clase Capabilities. Tal vez encuentres allí lo que estás buscando.
Si por shaders te refieres a cosas que compilas con el kit de herramientas pixel bender, no se ejecutan en la GPU. Ver:
http://www.kaourantin.net/2008/05/adobe-pixel-bender-in-flash-player-10.html
- 1. En Flash Player 10 con vectores, ¿por qué usarías Arrays?
- 2. Memoria en SWF (Flash Player)
- 3. Incrustar MP4 en HTML con flash-player
- 4. Comprensión del modelo de seguridad de Flash Player 10 para carga de archivos
- 5. Velocidad de fotogramas mágicos de Flash Player
- 6. Configuración de proxy para Flash Player
- 7. VideoEvent no trabajar en Flash Player 10.2
- 8. flash player no funciona en xvfb
- 9. Player to voxel colisión detección/respuesta
- 10. Flash Builder no puede encontrar la versión de depuración necesaria de Adobe Flash Player
- 11. evento de cambio de tamaño de vista para flash player
- 12. ¿Procesamiento de imagen de textura en la GPU?
- 13. Adobe Air vs Flash Player 10.1 Tiempo de ejecución
- 14. ¿Flash Player transmite las cookies de sesión automáticamente?
- 15. ¿Cómo instalo una versión anterior de Flash Player?
- 16. No se pueden escribir archivos locales en Flash Player 10+ en línea (pero funciona cuando se usan localmente)
- 17. ¿Incrustar Flash Player en una aplicación C++ o Java?
- 18. ¿Cómo manejar la limitación de memoria de la GPU para el procesamiento de imágenes de alta resolución en la GPU?
- 19. ¿Cuál es el límite de tamaño de etapa utilizable en Flash Player 11?
- 20. Detectar AIR frente a Flash Player desde una biblioteca actionscript
- 21. MediaElement.js: ¿obligar a Chrome a usar Flash Player?
- 22. Procesamiento de imágenes en CUDA o OpenCV?
- 23. Flash Builder 4 - Flash Player no se pudo conectar al depurador
- 24. GPU aceleró matemáticas en el navegador
- 25. Deshabilitar aceleración de hardware de Adobe Flash Player en el código de inserción o AS
- 26. ¿Cómo mostrar una vista previa grande de (mi) flash player en la nueva línea de tiempo?
- 27. Argumentos de la línea de comando de Flash Player para "Crear proyector"
- 28. ¿Cómo puedo confirmar que FireFox está utilizando la versión de depuración de Flash Player?
- 29. OpenCV en iOS - ¿uso de GPU?
- 30. ¿Cómo puedo determinar para qué versión de Flash Player se publicó un swf?
Parece la sugerencia más razonable: realizar pruebas de rendimiento y degradar con gracia las funciones para mantener la velocidad de cuadros activada. – Godeke
Un tartamudeo temporal en el sistema podría causar que el efecto se deshabilite cuando el sistema es realmente capaz de manejarlo con la aceleración de la GPU. La degradación de cualquier tipo requeriría un análisis de rendimiento que sea inmune al hipo. Si el efecto está estrictamente activado o desactivado, existe el problema de que las medidas de rendimiento utilizadas para decidir si aplicar o eliminar el efecto se verían fuertemente afectadas por la aplicación y la eliminación del efecto. Si el efecto es de hecho degradable, entonces el tiempo tendría que estar bien ajustado al efecto para que se autoajuste de manera efectiva. – Triynko