Quantcast
Channel: Mali Developer Center » Analysis, Debug and Software Development
Viewing all articles
Browse latest Browse all 6

Mali Graphics Debugger

$
0
0

OpenGL® ES 1.1, 2.0, 3.0, 3.1 and OpenCL™ 1.1 API Trace and Debug Tool

The Mali Graphics Debugger allows developers trace OpenGL ES and OpenCL API calls in their application and understand frame-by-frame the effect on the application to help identify possible issues.

Android and Linux ARM based target platforms are currently supported and everything to get up and running within a matter of moments is provided in the installer package.

 Features & Benefits

  • Draw-call by Draw-call stepping
    To identify draw call related issues, redundant draw calls and other opportunities to optimize
  • Texture View
    Visualize an application’s texture usage, to identify opportunities to compress textures or change formats.
  • Shader Statistics
    Understand which vertex and fragment shaders are the most expensive with cycle count reporting
  • Vertex Attribute / Uniform View
    See vertex data and index buffers
  • State View
    Full visibility of graphics state and tracking of state changes
  • Dynamic Optimization Advice
    Highlighting of common API miss-usage and dynamic performance improvement advice

See more features

Release Notes

What’s New in v2.1 Latest version

  • Support for ARMv8 (Android 64-bit)
  • Support for tracing Android Extension Pack
  • Added GPUVerify support to analyze OpenCL kernels
  • Added state comparison support
  • Many improvements in Frame Overrides
  • EGL parameters are now shown in the assets view

What’s New in v2.0

  • OpenGL ES 3.1 support
    This means that all OpenGL ES 3.1 function calls will be present in a trace.
  • Live editing
    • Support added for changing both the fragment and vertex shader of a program and then replaying the frame to view the results.
    • Support added to override textures in an application and replace them with a new texture that will aid in diagnosing any issues with incorrect texture coordinates.
    • Support added for overriding the precision of all elements in a shader and then replaying the frame to view the results (force highp/mediump/lowp modes)
    • New mid-level hierarchy in the outline view added so now draw calls are separated per framebuffer as well as per frame allowing the user to better visualize render passes.
  • New Android application provided to support unrooted devices
  • New view for compute shaders.
  • User can now filter by frame feature to highlight interesting frames in larger traces.
  • Support for making notes alongside function calls has been added. This allows important functions in a trace to be located easily.
  • Support for most OpenGL ES extensions.
  • Support for Windows systems with non-English languages [v2.0.1]

What’s New in v1.3.2

  • Support for Android 5.0 “Lollipop”

What’s New in v1.3

  • New frame replay feature (see User Guide Section 5.2.10 for details)
  • A new binary format for tracing (allows for faster tracing)
  • Memory performance improvements (allows for longer traces and improved performance of the tool in general)
  • Various small GUI tweaks
  • Multiple bugs fixes (see User Guide Section 9.1 for details)

What’s New in v1.2

  • New Shader Map feature allowing the user to see how fragment shaders are contributing to a scene and individual draw calls
  • New Overdraw Map feature showing the user how much overdraw in a scene and and how overdraw is built up draw call by draw call
  • New Framebuffer summary showing thumbnail of frames
  • Added support for Android KitKat (Android 4.4) – Added in 1.2.2 update
  • Added support for ASTC Textures
  • Updated vertex and fragment shader views showing number of instances each shader was executed and total cycle cost
  • Added arm hard float binaries (armhf)
  • General bug fixes and performance improvements

What’s New in v1.1.0

  • Added vertex attribute view to display vertex data for draw calls (included support for index buffers)
  • Added ability to search API call trace
  • Improved displaying shader uniforms and binary view of buffers
  • Improved Per frame and per draw call statistics
  • General bug fixes and performance improvements

Documentation

The user guide is available inside the Mali Graphics Debugger software, accessible from Help > Help Contents. Download and install the tool to access it.

Gallery

graphics debugger graphics debugger graphics debugger

Features

Trace API calls

Trace OpenGL ES, EGL, OpenCL API calls with arguments, time, process ID, thread ID.

  • Full trace from the start
  • Automatic check for GL errors
  • Search capabilities

graphics debugger

Outline View

Quick access to key graphics events.

  • Frames
  • Render targets
  • Draw calls

Investigate at frame level.

  • Find what draw calls have higher geometry impact

Jump between the outline view and the trace view seamlessly.

graphics debugger

Target State Debug

Shows the current state of the API at any point of the trace.

  • Every time a new API call is selected in the trace the state is updated
  • Useful to debug problems and understand causes for performance issues

Discover when and how a certain state was changed.

state-changes2-scaled

 

Trace Statistics and Analysis

High level statistics about the trace.

  • Per frame
  • Per draw call

Analyze the trace to find common issues.

  • Performance warnings
  • API misusage
  • Highlight API calls causing a problem in the trace view.

graphics debugger

 

Uniforms and Vertex Attributes for each draw call

When a draw call is selected, all the associated data is available:

Uniforms

  • Show uniform values, including samplers, matrices and arrays

Vertex Attributes

  • Show all the vertex attributes, their name and their position

graphics debuggerfeature-attributes

All the heavy assets are available for debugging, including data buffers and textures

Buffers

  • Client and server side buffers are captured every time they change
  • See how each API call affects them

Textures

  • All the textures being uploaded are captured at native resolution
  • Check their size, format and type

graphics debugger

 

Shaders reports and statistics

All the shaders being used by the application are reported.

Each shader is compiled with the Mali Offline Compiler and is statically analyzed to display:

  • number of instruction for each GPU pipeline, number of work registers and uniform registers

Additionally, for each draw call MGD knows how many times that shader has been executed (i.e. the number of vertices) and overall statistics are calculated.

graphics debugger

Frame capture and analysis

Frames can be fully captured to analyze the effect of each draw call.

  • A native resolution snapshot of each framebuffer is captured after every draw call
  • The capture happens on target, so target dependent bugs or precision issues can be investigated

All the images can be exported and analyzed separately.

graphics debugger

Alternative drawing modes

Different drawing modes can be forced and used both for live rendering and frame captures.

Native mode

  • Frames are rendered with the original shaders

Overdraw mode

  • Highlights where overdraw happens (ie. objects are drawn on the top of each other)

Shader map mode

  • Native shaders are replaced with different solid colors

Fragment count mode

  • All the fragments that are processed by each frame are counted

graphics debugger

Support

Please submit your questions and issues to the Mali Developer Forums

The post Mali Graphics Debugger appeared first on Mali Developer Center.


Viewing all articles
Browse latest Browse all 6

Trending Articles