Compiler Output Window in PVRShaderEditor

The Compiler Output window displays information about the latest compilation of the open shader file

After a shader has successfully compiled, information about the compilation is displayed in the Compiler Output window.

Depending on the compiler there will be one or two tabs in this window. For the PowerVR compilers, the profiling info tab will show some useful estimates about the latest successful compilation. In addition, for the PowerVR Series 6 compiler, a second tab will appear containing the disassembly code for the compiled shader. Finally, if the Khronos Reference Compiler is used, a single tab will appear which contains the human-readable SPIR-V to which the shader has been converted.

Note: For more information on the different compilers available in PVRShaderEditor see Compiler Configuration.

Profiling Output Tab

The Profiling Output tab contains information on the last successful compilation of the currently open file. This information commonly includes an estimate of the number of cycles per line and for the entire shader. The available information depends on the currently selected compiler and other additional parameters.

The performance counters shown in the image below are:
  • Global USC Instructions - These are the number of secondary instructions which will be run once for all instances of a shader.
  • Per-line Cycle Estimate Total - This counter simply adds up the estimated number of cycles for each line by looking at the instructions generated. It is a useful approximation.
  • Performance estimate (Best) - This counter measures the total number of cycles emulated. It should be closer to reality than the per-line cycles counter, as it takes into consideration conditional branching to calculate the best possible result.
  • Performance estimate (Worst) - This counter is the same as Performance estimate (Best) but assumes the worst possible outcome.
  • Ratio between cycles and instructions - This counter should usually be 1, but it can vary.

Profiling information is not available when using the Khronos Reference Compiler.

Disassembly Tab

If a file has been compiled successfully then PVRShaderEditor displays additional compile information in Disassembly Area. This information can either be the shader’s disassembly code, if the PowerVR Rogue compiler is used, or human-readable SPIR-V if the Khronos Reference Compiler is used.

This is the final internal representation of the shader and is very useful when trying to configure what the compiler has done to the shader. It is also very helpful when trying to optimise shaders.