PowerVR: Getting Great Graphics Performance with the ... · PDF file - Optimize pixel shaders...

Click here to load reader

  • date post

    06-Oct-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of PowerVR: Getting Great Graphics Performance with the ... · PDF file - Optimize pixel shaders...

  • PowerVR Developer Technology

    PowerVR: Getting Great Graphics Performance

    with the PowerVR Insider SDK

  • 2 © 2012 Imagination Technologies

    Company Overview

    UK Headquarters

    R&D

    Sales

    Solution Centric IP

    • Leading silicon, software & cloud IP supplier

    • Graphics, video, comms, processor, cloud

    • Licensing and royalty business model

    • Licensed to many top 20 semis & OEMs

    • Servicing high volume, high growth markets

    • Shipped by most major consumer brands

    • Smartphones, media players, tablets/netbooks, TVs/STBs, gaming

    devices, radios, connected devices, dashboards/navigation

    • Strategic product division: PURE • Digital radio, internet connected audio (today)

    • IP business pathfinder, market maker

    • Established technology powerhouse • Founded 1985; London FTSE 250 (IMG.L) • Employees: 1,000+ • UK HQ; operations world-wide • Global customer base

    © Imagination Technologies Ltd. 2

  • 3 © 2012 Imagination Technologies

    The PowerVR Insider SDK Overview

  • 4 © 2012 Imagination Technologies

    • Asset Optimization

    - Geometry; Textures

    • Coding

    - Source code, shader editors, emulation environment

    • Deployment

    - Abstraction layer; example projects

    • Optimization

    - Performance analysis; API tracing

    What is the PowerVR Insider SDK? Enabling Development

    PVRVFrame

    PVRShaman & PVRUniSCoEditor

    PVRGeoPOD & Collada2POD

    PVRTexTool & PVRTexLib

    PVRTune & PVRScope

    PVRTrace

  • 5 © 2012 Imagination Technologies

    • Training Courses & Demos

    - Step by step guide

    - basics to advanced techniques

    - Same project structure

    • PVRShell abstraction layer

    • PVRTools helper library

    • General graphics knowledge

    • PowerVR specific optimizations

    Source Code

    What is the PowerVR Insider SDK?

  • 6 © 2012 Imagination Technologies

    • Implementation and examples provided in source code

    • Highly optimized, lightweight deployment formats

    • Well-documented

    • POD – Model Format

    - Meshes, animations

    - References textures, effects

    • PVR – Texture Container Format

    - Newly updated in SDK 2.10

    - Cube maps, normal maps, volume textures, meta-data

    - OpenGL, OpenGL ES, DirectX formats

    • PFX – Effects format

    - Vertex & fragment shaders

    - References textures, uniforms, attributes

    - Render to texture support; post-processing

    File Formats & Implementations

    What is the PowerVR Insider SDK?

  • 7 © 2012 Imagination Technologies

    Utilities Asset Optimization

  • 8 © 2012 Imagination Technologies

    PVRGeoPOD & Collada2POD

    • PVRGeoPOD - POD exporter plug-in for 3D Studio

    Max, Maya and Blender

    • Collada2POD - Provides conversion from the Khronos

    Collada interchange format to POD

    - GUI and command line versions

    - Windows, Linux and Mac OS

  • 9 © 2012 Imagination Technologies

    PVRTexTool & PVRTexLib

    • Processes and compresses textures - All OpenGL ES (1.x, 2.0), DirectX (9,

    10)

    - Normal map generation, colour bleeding, border addition, high quality scaling algorithms and sky box optimization

    - Support for PVRTC, PVRTC2

    • Command line and GUI

    • Plug-in for Adobe Photoshop

    • PVRTexLib - library for direct integration into

    toolchains

  • 10 © 2012 Imagination Technologies

    • What is PVRTC?

    - High quality, high ratio texture compression format, designed for PowerVR hardware

    - PVRTC and PVRTC2 both support:

    - 4 bits per pixel RGBA; 8x saving

    - 2 bits per pixel RGBA; 16x saving

    • PVRTC2

    - better image quality, pre-multiplied alpha, NPOT sizes, sub-texturing

    Texture Compression

    PVRTC & PVRTC2

    PVRTC 2bpp DXT/S3TC 4bpp

    PVRTC 4bpp Original 32bpp

  • 11 © 2012 Imagination Technologies

    PVRShaman

    • Integrated visual shader development environment - See visual results of changes

    - Instant feedback on shader cost

    • Prototype entire scenes & characters - POD models or import

    Collada files

    - Material editing

    • Integrated PVRUniSCoEditor & compiler

    • DirectX, OpenGL and OpenGL ES (1.1 & 2.0) support

  • 12 © 2012 Imagination Technologies

    PVRUniSCo & PVRUniSCoEditor

    • PVRUniSCoEditor Shader Editor - Integrated shader performance

    information

    - Error reporting

    • PVRUniSCo - Offline command-line compiler

    - Profile your shaders

    • Updated compilers - SGX 53x

    - SGX 540

    - SGX 543

  • 13 © 2012 Imagination Technologies

    PVRVFrame

    • PowerVR OpenGL ES emulator - OpenGL ES (1.1 & 2.0) emulation on

    Windows, Linux and Mac OS

    • PVRVFrame features - Develop and debug without PowerVR

    hardware

    - Supports all MBX and SGX extensions

    - Choose a profile for a specific core

  • 14 © 2012 Imagination Technologies

    Performance PVRTrace

  • 15 © 2012 Imagination Technologies

    PVRTrace Overview

  • 16 © 2012 Imagination Technologies

    • Trace any application

    - No need for special builds

    • Trace on multiple device platforms

    - Android

    - Linux

    - PVRVFrame Emulation

    • Analyse with desktop GUI

    - Windows, Linux, Mac OS

    Features

    PVRTrace

  • 17 © 2012 Imagination Technologies

    • Host Information

    - PVRTrace needs to pass calls through to the underlying system

    • Recording Information

    - What to record

    - Where to put output

    - Texture and buffer data is recorded if “RecordData” is 1

    - TraceFile must be set to a writeable location

    • Please read the doc!!!

    Configuration

    PVRTrace

    PVRTrace.cfg

    [host]

    EglLibraryPath = %SYSTEMDIR%\libEGL.dll

    Es1LibraryPath = %SYSTEMDIR%\libGLES_CM.dll

    Es2LibraryPath = %SYSTEMDIR%\libGLESv2.dll

    [record]

    TraceFile = trace-%pid.pvrt

    RecordData = 1

    StartFrame = 0

    EndFrame = 1

    Path to Driver libraries

    Where to put output

    What to record

  • 18 © 2012 Imagination Technologies

    Analysis Interface

    Frame Summary & Function Counts Function Calls

    Data Viewer Render States, Textures, Shaders

    Frame Scrubber

    Frame Selector

  • 19 © 2012 Imagination Technologies

    Performance PVRTune & PVRScope

  • 20 © 2012 Imagination Technologies

    PVRTune Overview

    • Client and Server applications

    - PVRPerfServer on device

    - PVRTune on development machine

    • Typical Use Case

    1. Run PVRPerfServer application on device

    - PVRScopeServices must be enabled on the device

    2. Run application to be analysed

    3. Connect with PVRTune client from development machine

  • 21 © 2012 Imagination Technologies

    PVRPerfServer

    • Server application that gathers data to be analysed by PVRTune

    - Runs from command line or application menu

    - Waits for client connection then sends data across standard network connection

    - Can also record data to file for later analysis

    • Enabled by default in many, already shipping devices

    - Negligible graphics performance overhead

    - Low CPU usage

    • PVRTune and PVRPerfServer version numbers should match

  • 22 © 2012 Imagination Technologies

    PVRTune Analysis Interface

    Hardware

    Performance Counters

    Hardware Counter Groups

    TA/3D load

    visualisation

    Graph views

    Connection Status

  • 23 © 2012 Imagination Technologies

    TA/3D Colours

    Inside colours indicate render target

    TA

    3D Outside colours indicate PID

    Block colour indicates frame Transfer Tasks

    (Always appear grey)

  • 24 © 2012 Imagination Technologies

    Counters

    • Software

    • Hardware

    • Real-time data collection

    - Counters retrieved as the application is rendering

    • Counters grouped by association

    - Click group number to activate

    - Inactive counters greyed out

    Select current counter group

    Specific counters can be dragged from here to graph view

    Description of current counter

    Select colour and y-axis for graphing

    Axis per counter

    Dynamically

    updating values

    Columns can be user selected

  • 25 © 2012 Imaginatio