# CodeXL

CodeXL (anteriormente AMD CodeXL) era un conjunto de herramientas de desarrollo de software de código abierto que incluía un depurador de GPU, un perfilador de GPU, un perfilador de CPU, un analizador de cuadros de gráficos y un analizador de sombreado/kernel estático.
CodeXL fue desarrollado principalmente por AMD. Con la versión 2.0, CodeXL pasó a formar parte de GPUOpen y es un software gratuito y de código abierto sujeto a los requisitos de la licencia MIT. Ya no tiene la marca de un producto de AMD.
El perfilador de CPU y el perfilador de energía se incluyeron en CodeXL hasta la versión 2.5. Ahora estos perfiladores se lanzan como parte de la herramienta AMD uProf.
En abril de 2020, AMD actualizó el repositorio de GitHub y anunció que "AMD ya no desarrolla ni admite CodeXL activamente y se está archivando"

## Características
### Depurador de GPU

El depurador de GPU de CodeXL permite a los ingenieros depurar llamadas API OpenGL y OpenCL y objetos de tiempo de ejecución, y depurar núcleos OpenCL: establecer puntos de interrupción, recorrer el código fuente en tiempo real, ver todas las variables en diferentes núcleos de GPU durante la ejecución del núcleo, identificar errores de lógica y memoria, reducir la sobrecarga de transacciones de memoria, visualizar búferes e imágenes OpenCL/OpenGL y texturas OpenGL como imágenes o como datos de hoja de cálculo, y de esta manera mejorar la calidad general del software y optimizar su rendimiento.

### Perfilador de GPU

El perfilador de GPU de CodeXL recopila y visualiza datos de contadores de rendimiento de hardware, seguimiento de aplicaciones, ocupación del kernel y ofrece análisis de puntos de acceso para GPU y APU de AMD. El generador de perfiles recopila datos del tiempo de ejecución de OpenCL y de la propia GPU/APU durante la ejecución de los núcleos, y se puede utilizar para descubrir cuellos de botella en el rendimiento y optimizar la ejecución del núcleo.

### Perfilador de CPU

AMD uProf reemplaza CodeXL para las funcionalidades de perfilado de energía y CPU en los procesadores AMD.
El conjunto de creación de perfiles de CPU de CodeXL se puede utilizar para identificar, investigar y mejorar el rendimiento de las aplicaciones, los controladores y el software del sistema en las CPU de AMD. El generador de perfiles de CPU de CodeXL utiliza un enfoque basado en muestreo estadístico con varias técnicas y medidas de generación de perfiles: generación de perfiles basada en el tiempo (TBP), generación de perfiles basada en eventos (EBP), muestreo basado en instrucciones (IBS) y monitores de rendimiento del hardware de la CPU. El generador de perfiles de CPU CodeXL reemplaza a AMD CodeAnalyst.

### Analizador de kernel/sombreador estático

El analizador de kernel estático de CodeXL permite a los ingenieros compilar, analizar y desensamblar el código de DirectX, OpenGL y Vulkan shaders y kernels OpenCL. La herramienta proporciona una estimación del rendimiento para cada shader/kernel en diferentes tipos de chips AMD, sin ejecutar el código. De esta forma, la herramienta ayuda en el ajuste fino para lograr el mejor rendimiento en las GPU de AMD.

#### Radeon GPU Analyzer (RGA)

En el primer trimestre de 2017, AMD CodeXL Analyzer fue reemplazado por Radeon GPU Analyzer (RGA), manteniendo la compatibilidad con versiones anteriores. Radeon GPU Analyzer CLI es un compilador fuera de línea y una herramienta de análisis de rendimiento para sombreadores DirectX, sombreadores OpenGL, sombreadores Vulkan y núcleos OpenCL.

### Perfilador HSA

Con la versión 2.0, CodeXL HSA Profiler y HSAIL Kernel Debugger son compatibles con el controlador de la iniciativa Boltzmann, en hardware GCN 1.2 (es decir, APU Radeon R9 Fury, Fury X y Fury Nano, y "Carrizo".

### Graphics Frame Analyzer

Frame Analyzer puede recopilar y mostrar una línea de tiempo de fotogramas para aplicaciones que utilizan Microsoft DirectX 12 o Vulkan. La vista del analizador enumera cada llamada API que se realizó en el lado de la CPU y su comando correspondiente que se ejecutó en el lado de la GPU en una vista de línea de tiempo unificada e interconectada, así como estadísticas agregadas para el fragmento de tiempo específico seleccionado por el usuario: tiempo acumulado para cada tipo de API, número de llamadas, 20 llamadas más largas y más.

## Plataformas compatibles

CodeXL admite oficialmente los sistemas operativos Linux y Microsoft Windows. En Windows, CodeXL está disponible como una aplicación independiente y como una extensión de Microsoft Visual Studio totalmente integrada.
CodeXL se utilizó con éxito para depurar Bullet.

## Versiones y disponibilidad

* AMD CodeXL 1.0, lanzado el 4 de diciembre de 2012.
* AMD CodeXL 1.1, lanzado el 27 de febrero de 2013.
* AMD CodeXL 1.2, lanzado el 9 de julio de 2013.
* AMD CodeXL 1.3, lanzado el 11 de noviembre de 2013.
* AMD CodeXL 1.4, lanzado el 11 de abril de 2014.
* AMD CodeXL 1.5, lanzado el 22 de septiembre de 2014.
* AMD CodeXL 1.6, lanzado el 16 de diciembre de 2014.
* AMD CodeXL 1.7, lanzado el 28 de abril de 2015.
* AMD CodeXL 1.8, lanzado el 20 de agosto de 2015.
* CodeXL 2.0, lanzado el 19 de abril de 2016.
* CodeXL 2.1, publicado el 31 de mayo de 2016.
* CodeXL 2.2, lanzado el 8 de agosto de 2016.
* CodeXL 2.4, lanzado el 20 de junio de 2017.
* CodeXL 2.5, lanzado el 26 de septiembre de 2017.
* CodeXL 2.6, lanzado el 15 de octubre de 2018.
La última versión de CodeXL está disponible gratuitamente para su descarga en la página de versiones de CodeXL GitHub.

## GPU PerfStudio

GPU PerfStudio es la herramienta de rendimiento y depuración de AMD para aplicaciones gráficas. Inicialmente se desarrolló para admitir Direct3D y OpenGL solo en Microsoft Windows y se transfirió a Linux durante 2013 y está disponible para Linux desde finales del primer trimestre de 2014. El conjunto de herramientas se considera útil al desarrollar juegos para Steam Linux y especialmente útil al optimizar juegos para GPU AMD. GPU PerfStudio tiene perfiles de marco integrados, depurador de marcos y seguimiento de API con información de tiempo de CPU.
GPU PerfStudio es compatible con Direct3D 10, Direct3D 10.1, Direct3D 11 y OpenGL 4.2. Se describe como un conjunto de herramientas de GPU ligero, sin instalador, sin cambios en su juego, de arrastrar y soltar. Se puede ejecutar desde una unidad USB, no hay necesidad de integración con Visual Studio, se ejecuta con ejecutables de juegos, no requiere un controlador especial o una nueva compilación.
GPU PerfStudio 3.6 es compatible con Direct3D 12 en Windows 10 y Vulkan en Windows y Linux.
GPU PerfStudio está disponible para Linux y Microsoft Windows.
En la Cumbre de desarrolladores de AMD (APU) en noviembre de 2013, Gordon Selley presentó GPU PerfStudio 2.
En SteamDevDays en febrero de 2014, Tony Hosier y Gordon Selley presentaron GPU PerfStudio 2 en un video de 43 minutos.

### GPUPerfAPI

GPUPerfAPI es la biblioteca de AMD para acceder a los contadores de rendimiento de GPU en tarjetas gráficas y APU AMD Radeon. Lo utilizan GPU PerfStudio y CodeXL y también está disponible para desarrolladores externos que deseen incorporarlo en sus propias aplicaciones. GPUPerfAPI admite aplicaciones DirectX11, OpenGL y OpenCL. GPUPerfAPI está disponible para Linux y Microsoft Windows.