The **Shader** pane allows you to see individual shaders used in the trace.

To use this pane, select a shader in the list. This creates a new tab that shows
the shader's source as well as static analysis statistics.

To see the specific shader bound to a specific stage in the pipeline, view that
stage in the [**Pipeline** view](https://developer.android.com/games/agi/refdocs/pipeline-view-pane).
![Shader pane](https://developer.android.com/static/images/games/agi/pane-shader.png) **Figure 1.** **Shader** pane

## Select shader code

You can select either **SPIR-V** or, if possible, **GLSL**. Note:

- If the SPIR-V code provides the original GLSL code in its OpSource instruction, the **GLSL** tab simply shows the same code. If not, AGI attempts to decompile the SPIR-V into GLSL using SPIRV-Cross.
- If an error occurs in the decompilation, the option to show GLSL source code isn't available.

## Static analysis

AGI provides statistics from a static analysis of the SPIR-V shader. Here are
the statistics supported:

|            Statistic             |                                                                                                                                 Description                                                                                                                                  |
|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ALU Instructions                 | Number of instructions in the shader that uses the ALU.                                                                                                                                                                                                                      |
| Texture Instructions             | Number of texture fetches in the shader.                                                                                                                                                                                                                                     |
| Branch Instructions              | Number of branching instructions in the shader.                                                                                                                                                                                                                              |
| Peak Temporary Register Pressure | The highest number of concurrently live temporary registers. A temporary value's lifetime starts at its defition and ends at its last use in the shader. The statistic adds *p* the number of registers each live value uses (for example, a 4D float would be 4 registers). |