Cuando el desarrollo de juegos móviles encuentra problemas gráficos, ¿qué herramientas de análisis de representación de gráficos se pueden utilizar?
Los juegos propios tienen más herramientas de análisis porque tienen código fuente.
RenderDoc
RenderDoc es la herramienta de depuración de gráficos de CryEngine, ahora de código abierto. Esta herramienta se utiliza principalmente en la plataforma Windows. La plataforma Mac aún está en desarrollo y el progreso es relativamente lento. La herramienta en sí puede analizar en profundidad la representación de gráficos DirectX 11, registrar llamadas API, registrar el estado de la representación, registrar los recursos de representación, etc. Es muy completa y fácil de usar.
Aunque esta herramienta también puede soportar OpenGL, su soporte para OpenGL no está lo suficientemente maduro, por lo que se utiliza principalmente para analizar DirectX.
La herramienta está integrada en la versión para Windows del editor Unity y se puede utilizar directamente en el editor.
Instrumentos XCode
Las herramientas de depuración de gráficos que vienen con XCode ya son muy buenas. Si estás desarrollando un juego para iOS, las herramientas que vienen con XCode son más que suficientes.
Después de exportar un juego desarrollado con Unity como un proyecto de iOS, también puedes usar la función de depuración de gráficos de XCode para depurar.
Visual Studio Framework Debugger
VS viene con potentes herramientas de depuración gráfica, pero, por supuesto, solo es compatible con la plataforma Windows. Debido a que el desarrollo de juegos actual se centra principalmente en plataformas móviles iOS y Android, es de poca utilidad.
Unity Frame Debugger
Unity viene con su propia herramienta de depuración gráfica. Esta herramienta es un poco menos poderosa, pero como está integrada en Unity, es fácil de abrir y puedes usarla ocasionalmente para ver los pasos de renderizado aproximados.
Juegos de terceros
Los juegos de terceros no tienen código fuente, pero existen algunas herramientas de GPU que pueden ayudar a ver el estado de renderizado y analizar el proceso de renderizado. Estas herramientas suelen ser desarrolladas y mantenidas por proveedores de hardware de GPU y no tienen versiones de código abierto.
PVRTrace
PVRTrace es una herramienta de análisis de GPU proporcionada por Imagination Technology. Los pasos para usar esta herramienta en un teléfono Android son los siguientes:
El teléfono Android probado requiere el uso de la GPU de Imagination Technology Aunque los chips de la serie SGX se utilizan mucho en los teléfonos Apple, SGX no está disponible en. la plataforma Android. La tasa de uso no es alta. El Kindle Fire HD de Amazon utiliza el chipset SGX
Los teléfonos Android deben estar rooteados, lo que se puede hacer usando la herramienta de raíz con un solo clic
Instalar PVRHub en el teléfono
Habilite el seguimiento en PVRHub, luego seleccione la aplicación de destino, PVRTrace comenzará a registrar datos de renderizado.
Los datos presentados se guardan en el teléfono móvil, debe usar adb para transferir los datos presentados a la computadora local
Abra PVRTraceGUI e importe los datos presentados
En este momento puedes comenzar a analizar los datos
Pero al final todavía no pude usar la herramienta PVRTrace con éxito. Encontré los siguientes problemas.
El teléfono móvil que comencé a usar fue Xiaomi 2. La GPU no era de la serie SGX, sino de la serie Adreno de Qualcomm, por lo que la ventana de imagen de la GUI de PVRTrace no podía mostrar el búfer de cuadros renderizados.
Después de cambiar a Kindle Fire HD, descubrí que rootear en Kinde no era muy fácil de usar y falló varias veces, así que dejé de intentarlo. Después de algunos intentos fallidos, dejé de intentarlo.
Los problemas se redujeron al hecho de que no encontré un dispositivo raíz de GPU SGX adecuado. Esto no es un problema con la herramienta en sí.
Adreno Profiler
Adreno Profiler es la herramienta de depuración de renderizado de GPU de Qualcomm que funciona de manera similar a PVRTrace y proporciona registros de API de renderizado y análisis de reproducción. Por supuesto, la herramienta también fue desarrollada para los conjuntos de chips de Qualcomm.
Tenía un dispositivo Xiaomi 2 a mano, así que probé Adreno Profiler, pero al final no funcionó.
Adreno Profiler está basado en mono, por lo que se recomienda su uso en Windows. Yo también lo usé en Windows y no probé la versión para Mac.
Debe instalar el SDK de Android antes de usarlo, porque esta herramienta requiere el uso de adb en el SDK.
Debes probar si el juego tiene una conexión de red; de lo contrario, no podrá conectarse. PerfHud ES también tiene los mismos requisitos.
Después de cumplir estos requisitos previos, Adreno Profiler se inicia correctamente y puede conectarse correctamente al teléfono. Sin embargo, mientras probaba con Balls to the Wall, descubrí que Adreno Profiler mostraba un error de C# después de capturar un cuadro de datos para analizarlo. Al final el problema no se solucionó.
Adreno Profiler es de hecho la más fácil de configurar entre todas las herramientas de depuración, pero se produjeron errores durante el uso real, lo que hizo imposible utilizar Adreno Profiler.
PerfHud
PerfHud es un analizador de gráficos de nVidia. Las herramientas de nVidia son poderosas y completas, las he usado antes y se usan ampliamente en plataformas de escritorio.
Pero dado que la GPU de nVidia (serie Tegra) no tiene una gran cuota de mercado en plataformas móviles, no existe la posibilidad de utilizar este dispositivo en plataformas móviles.
PerfHud ES está integrado en Nvidia CodeWorks, necesitas descargar CodeWorks para usarlo. CodeWorkd descarga automáticamente el entorno de desarrollo completo de Android, por lo que si aún no tiene un entorno de desarrollo en su máquina, usar CodeWorks para configurar un entorno con un solo clic sería una excelente manera de hacerlo. Sin embargo, el IDE que descarga CodeWorks sigue siendo el Eclipse obsoleto.
Es posible que PerfHud ES no pueda encontrar adb al inicio, por lo que debe especificar la ruta a adb al inicio
.