PowerVR: Getting Great Graphics Performance with the PowerVR Insider SDK. PowerVR Developer Technology

Similar documents
Tools To Get Great Graphics Performance

The PowerVR Insider SDK. PowerVR Developer Technology

Using the PowerVR SDK to Optimize your Renderer

PowerVR SDK & Tools. February 2017

PowerVR Performance Recommendations. The Golden Rules

POWERVR MBX & SGX OpenVG Support and Resources

PowerVR Performance Recommendations The Golden Rules. October 2015

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

PVRHub. User Manual. Public Imagination Technologies

Adding Advanced Shader Features and Handling Fragmentation

Profiling and Debugging Games on Mobile Platforms

PVRTune. Quick Start Guide for Android

PowerVR Series5. Architecture Guide for Developers

PVRShaman. User Manual

PVRTrace. User Manual

Parallax Bumpmapping. Whitepaper

PowerVR Performance Recommendations. The Golden Rules

PVRTune. User Manual

Imagination Technologies OpenGL ES 2.0 SDK - Kristof Beets

PowerVR. Performance Recommendations

PowerVR Framework. October 2015

PowerVR Graphics - Latest Developments and Future Plans

PowerVR Hardware. Architecture Overview for Developers

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

PowerVR. Performance Recommendations

Copyright Khronos Group Page 1

PVRTC & Texture Compression. User Guide

The Ultimate Developers Toolkit. Jonathan Zarge Dan Ginsburg

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Dave Shreiner, ARM March 2009

LPGPU Workshop on Power-Efficient GPU and Many-core Computing (PEGPUM 2014)

PVRTC Specification and User Guide

NVIDIA Parallel Nsight. Jeff Kiel

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

PVRTexTool. User Manual

Baback Elmieh, Software Lead James Ritts, Profiler Lead Qualcomm Incorporated Advanced Content Group

PVR File Format. Specification

Navigational Data Tools. Reference Guide

Edge Detection. Whitepaper

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques

Overview. Technology Details. D/AVE NX Preliminary Product Brief

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

POWERVR. 3D Application Development Recommendations

More frames per second. Alex Kan and Jean-François Roy GPU Software

Broken Age's Approach to Scalability. Oliver Franzke Lead Programmer, Double Fine Productions

Introduction to OpenGL ES 3.0

OGLES PVRVFrame. User Manual

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Saving the Planet Designing Low-Power, Low-Bandwidth GPUs

Neil Trevett Vice President Mobile Ecosystem, NVIDIA President, Khronos Group. Copyright Khronos Group Page 1

Optimizing DirectX Graphics. Richard Huddy European Developer Relations Manager

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

Siggraph Agenda. Usability & Productivity. FX Composer 2.5. Usability & Productivity 9/12/2008 9:16 AM

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc.

OpenGL ES for iphone Games. Erik M. Buck

GPU Offline Shader Compiler. Mali. User Guide. Version: 2.2. Copyright 2009 ARM. All rights reserved. ARM DUI 0513A (ID101409)

NVIDIA Developer Tools for Graphics and PhysX

POWERVR MBX. Technology Overview

The Application Stage. The Game Loop, Resource Management and Renderer Design

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Working with Metal Overview

Chapter Answers. Appendix A. Chapter 1. This appendix provides answers to all of the book s chapter review questions.

SIGGRAPH Briefing August 2014

GPU Shader Library. Mali. User Guide. Version: 1.0. Copyright 2009 ARM. All rights reserved. ARM DUI 0510A (ID101409)

Shader Based Water Effects. Whitepaper

Why modern versions of OpenGL should be used Some useful API commands and extensions

PFX Language Format. Specification

Optimizing for DirectX Graphics. Richard Huddy European Developer Relations Manager

PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE

Optimizing Games for ATI s IMAGEON Aaftab Munshi. 3D Architect ATI Research

EECS 487: Interactive Computer Graphics

Zappar's coordinate system is based on the center of the scene being the center of the target image.

Inside VR on Mobile. Sam Martin Graphics Architect GDC 2016

PLAYSTATION Edge. Mark Cerny Jon Olick Vince Diesi

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Rendering Objects. Need to transform all geometry then

NVSG NVIDIA Scene Graph

OpenGL ES. Kristof Beets 3 rd Party Relations Manager Imagination Technologies

3D Overlay Specifications (Formerly 3D Guidelines)

Mobile Performance Tools and GPU Performance Tuning. Lars M. Bishop, NVIDIA Handheld DevTech Jason Allen, NVIDIA Handheld DevTools

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

AR Standards Update Austin, March 2012

8iUnityPlugin Documentation

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

Viewport 2.0 API Porting Guide for Locators

ARM. Mali GPU. OpenGL ES Application Optimization Guide. Version: 2.0. Copyright 2011, 2013 ARM. All rights reserved. ARM DUI 0555B (ID051413)

OpenGL ES 2.0 SDK for Android. Mali. User Guide. Version: Copyright 2011 ARM. All rights reserved. ARM DUI 0587A (ID120411)

Optimisation. CS7GV3 Real-time Rendering

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

Architectures. Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1

Raise your VR game with NVIDIA GeForce Tools

Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics.

Analyze and Optimize Windows* Game Applications Using Intel INDE Graphics Performance Analyzers (GPA)

Accelerating Realism with the (NVIDIA Scene Graph)

ARM. Mali GPU. OpenGL ES Application Optimization Guide. Version: 3.0. Copyright 2011, 2013 ARM. All rights reserved. ARM DUI 0555C (ID102813)

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

Enabling the Next Generation of Computational Graphics with NVIDIA Nsight Visual Studio Edition. Jeff Kiel Director, Graphics Developer Tools

Performance OpenGL Programming (for whatever reason)

Transcription:

PowerVR: Getting Great Graphics Performance with the PowerVR Insider SDK PowerVR Developer Technology

Company Overview 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 Solution Centric IP 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 UK Headquarters R&D Sales 2 2012 Imagination Technologies Imagination Technologies Ltd.

3 2012 Imagination Technologies The PowerVR Insider SDK Overview

What is the PowerVR Insider SDK? Enabling Development Asset Optimization - Geometry; Textures Coding - Source code, shader editors, emulation environment Deployment - Abstraction layer; example projects Optimization - Performance analysis; API tracing PVRGeoPOD & Collada2POD PVRTexTool & PVRTexLib PVRTrace PVRShaman & PVRUniSCoEditor PVRTune & PVRScope PVRVFrame 4 2012 Imagination Technologies

What is the PowerVR Insider SDK? Source Code 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 5 2012 Imagination Technologies

What is the PowerVR Insider SDK? File Formats & Implementations 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 6 2012 Imagination Technologies

7 2012 Imagination Technologies Utilities Asset Optimization

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 8 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 9 2012 Imagination Technologies

PVRTC & PVRTC2 Texture Compression 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 Original 32bpp PVRTC 4bpp DXT/S3TC 4bpp PVRTC 2bpp 10 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 11 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 12 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 13 2012 Imagination Technologies

14 2012 Imagination Technologies Performance PVRTrace

PVRTrace Overview 15 2012 Imagination Technologies

PVRTrace Features 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 16 2012 Imagination Technologies

PVRTrace Configuration Host Information - PVRTrace needs to pass calls through to the underlying system PVRTrace.cfg Path to Driver libraries 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!!! [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 What to record Where to put output 17 2012 Imagination Technologies

Analysis Interface Frame Summary & Function Counts Frame Scrubber Function Calls Render States, Textures, Shaders 18 2012 Imagination Technologies Data Viewer Frame Selector

19 2012 Imagination Technologies Performance PVRTune & PVRScope

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 20 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 21 2012 Imagination Technologies

PVRTune Analysis Interface Hardware Counter Groups TA/3D load visualisation Hardware Performance Counters Graph views Connection Status 22 2012 Imagination Technologies

TA/3D Colours Transfer Tasks (Always appear grey) Block colour indicates frame Inside colours indicate render target 3D TA Outside colours indicate PID 23 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 Specific counters can be dragged from here to graph view Select current counter group Columns can be user selected Dynamically updating values Axis per counter Description of current counter Select colour and y-axis for graphing 24 2012 Imagination Technologies

CPU Bound Application Case Study SGX is waiting for the CPU - Likely to be indicated by gaps between TA and 3D activity blocks Example causes - Stalling operation required by CPU - CPU must process and submit draw calls - CPU may simply not be keeping up Example developer actions - CPU-profiling and optimizations - Better batching of draw calls - Examine API calls for stalling operations and reduce these CPU may be at or near 100% Gaps between TA and 3D tasks 25 2012 Imagination Technologies

Vertex Bound Application Case Study The amount of vertex processing is limiting application frame rate USSE load: vertex and TA load may be high Example counters to examine: - USSE clock cycles per vertex - USSE load: vertex - on-screen vertices per frame - TA load - ISP load Example developer actions - Optimize vertex shaders - Reduce number of vertices passed to SGX by using more CPU culling, level of detail algorithms or low-poly, bumpmapping techniques Gaps between 3D tasks No gaps between TA tasks 26 2012 Imagination Technologies

Pixel/Fragment Bound Application Case Study Fragment processing is limiting frame rate Example counters to examine: - USSE clock cycles per pixel - USSE load: pixel - texture unit(s) load USSE load: pixel and USSE clock cycles per pixel may be high Example developer actions - Optimize pixel shaders - Examine how much blending or alpha testing is in the scene - Examine textures - Texture formats (PVRTC vs. uncompressed) - MIP-map use - Filtering modes No gaps between 3D tasks Large gaps between TA tasks 27 2012 Imagination Technologies

V-Sync Limited Application Easy to spot TA & 3D serialised TA and 3D blocks will appear serialised. SGX sleeps intermittently Frame rate will appear to sit at a cap. V-Sync makes profiling hard - Interferes with bottleneck identification - Disable V-Sync if you can Frame rate hovering around a fixed number. SGX sleeping unpredictably 28 2012 Imagination Technologies

Bandwidth Limited Application Most difficult bottleneck to spot - Fragment bound but low USSE Load: Pixel - Vertex bound but low USSE Load: Vertex - High TSP Load In SoCs bandwidth is shared among the whole system. Example developer actions - Use texture compression - Avoid unnecessary texture reads read once and reuse - Especially dependent texture reads - Optimize meshes - Consider using non-float data types Always assume bandwidth is limited 29 2012 Imagination Technologies

PVRScope Library In your own applications: - Access SGX hardware counters - Pass custom counters to PVRTune - Receive data from PVRTune 30 2012 Imagination Technologies

PowerVR Insider SDK Summary Source Code - Example Projects - Training Courses - Demos - Abstraction Layer - PVRShell - Helper Library - PVRTools Asset Optimisation - Geometry - PVRGeoPOD & Collada2POD - Textures - PVRTexTool & PVRTexLib Prototyping - Shaders - PVRShaman - PVRUniSCo & PVRUniSCoEditor - Emulation - PVRVFrame Performance - API tracing - PVRTrace - Real time, hardware counters - PVRTune - PVRScope And more: Documentation, example renderer, navigation data tools 31 2012 Imagination Technologies

PowerVR Insider Program Knowledge Base Blogs/ Social Media Website SDK Email/Tel Support Eco System Virtual Demo Room FAQs Developer Days Forums Training http://www.powervrinsider.com Free to join Benefits of being a PowerVR Insider - PowerVR Insider SDK downloads - Open developer forums - Direct email contact with engineers from PowerVR Developer Technology - devtech@imgtec.com - Documentation - FAQs - Training (web based and onsite) 32 2012 Imagination Technologies PowerVR: Masterclass in Graphics Technology and Optimization - Tomorrow 2:30-3:30 - Room 2014, West Hall, 2 nd Floor See you there