Advanced Graphics and Animations for ios Apps

Size: px
Start display at page:

Download "Advanced Graphics and Animations for ios Apps"

Transcription

1 Tools #WWDC14 Advanced Graphics and Animations for ios Apps Session 419 Axel Wefers ios Software Engineer Michael Ingrassia ios Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

2 What You Will Learn Core Animation pipeline Rendering concepts UIBlurEffect UIVibrancyEffect Profiling tools Case studies

3 Technology Framework UIKit Core Animation OpenGL ES Core Graphics Graphics Hardware

4 Core Animation Pipeline Axel Wefers ios Software Engineer

5 Core Animation Pipeline Application

6 Core Animation Pipeline Application Core Animation

7 Core Animation Pipeline Application Core Animation Render Server

8 Core Animation Pipeline Application Core Animation Render Server Core Animation

9 Core Animation Pipeline Application Core Animation Render Server Core Animation GPU

10 Core Animation Pipeline Application Core Animation Render Server Core Animation GPU Display

11 Core Animation Pipeline Application Core Animation Render Server Core Animation GPU Display ms

12 Core Animation Pipeline Application Core Animation Handle Events Render Server Core Animation GPU Display ms

13 Core Animation Pipeline Application Core Animation Commit Transaction Render Server Core Animation GPU Display ms

14 Core Animation Pipeline Application Core Animation Commit Transaction Render Server Core Animation Decode GPU Display ms

15 Core Animation Pipeline Application Core Animation Commit Transaction Render Server Core Animation Decode Draw Calls GPU Display ms

16 Core Animation Pipeline Application Core Animation Commit Transaction Render Server Core Animation Decode Draw Calls GPU Render Display ms

17 Core Animation Pipeline Application Core Animation Commit Transaction Render Server Core Animation Decode Draw Calls GPU Render Display Display ms

18 Core Animation Pipeline Application Core Animation Render Server Core Animation GPU Display ms

19 Core Animation Pipeline Application Core Animation Commit Transaction Render Server Core Animation GPU Display ms

20 Commit Transaction

21 Commit Transaction Layout Set up the views

22 Commit Transaction Layout Display Set up the views Draw the views

23 Commit Transaction Layout Display Prepare Set up the views Draw the views Additional Core Animation work

24 Commit Transaction Layout Display Prepare Commit Set up the views Draw the views Additional Core Animation work Package up layers and send them to render server

25 Commit Transaction Layout Display Prepare Commit

26 Layout Layout Display Prepare Commit layoutsubviews overrides are invoked View creation, addsubview: Populate content, database lookups Usually CPU bound or I/O bound

27 Display Layout Display Prepare Commit Draw contents via drawrect: if it is overridden String drawing Usually CPU or memory bound

28 Prepare Commit Layout Display Prepare Commit Image decoding Image conversion

29 Commit Layout Display Prepare Commit Package up layers and send to render server Recursive Expensive if layer tree is complex

30 Animation Three-stage process Application Render Server

31 Animation Three-stage process Application Render Server 1. Create animation and update view hierarchy (animatewithduration:animations:)

32 Animation Three-stage process Application Render Server 2. Prepare and commit animation (layoutsubviews, drawrect:) 1. Create animation and update view hierarchy (animatewithduration:animations:)

33 Animation Three-stage process Application Render Server 2. Prepare and commit animation (layoutsubviews, drawrect:) Layout Display Prepare Commit 1. Create animation and update view hierarchy (animatewithduration:animations:)

34 Animation Three-stage process Application Render Server 3. Render each frame 2. Prepare and commit animation (layoutsubviews, drawrect:) Layout Display Prepare Commit 1. Create animation and update view hierarchy (animatewithduration:animations:)

35 Rendering Concepts Axel Wefers ios Software Engineer

36 Rendering Concepts Tile based rendering Render passes Example masking

37 Tile Based Rendering Screen is split into tiles of NxN pixels Each tile fits into the SoC cache Geometry is split in tile buckets Rasterization can begin after all geometry is submitted

38 Tile Based Rendering Screen is split into tiles of NxN pixels Each tile fits into the SoC cache Geometry is split in tile buckets Rasterization can begin after all geometry is submitted

39 Tile Based Rendering Screen is split into tiles of NxN pixels Each tile fits into the SoC cache Geometry is split in tile buckets Rasterization can begin after all geometry is submitted

40 Tile Based Rendering Screen is split into tiles of NxN pixels Each tile fits into the SoC cache Geometry is split in tile buckets Rasterization can begin after all geometry is submitted

41 Tile Based Rendering Screen is split into tiles of NxN pixels Each tile fits into the SoC cache Geometry is split in tile buckets Rasterization can begin after all geometry is submitted

42 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation

43 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL GPU

44 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL GPU Command Buffer

45 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL GPU Command Buffer Vertex Processing Vertex Shader

46 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL GPU Command Buffer Vertex Processing Vertex Shader Tiling

47 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL Tiler GPU Command Buffer Vertex Processing Vertex Shader Tiling

48 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL Tiler GPU Command Buffer Vertex Processing Vertex Shader Tiling Parameter Buffer

49 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL Tiler GPU Command Buffer Vertex Processing Vertex Shader Tiling Parameter Buffer Pixel Processing Pixel Shader

50 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL Tiler GPU Command Buffer Vertex Processing Vertex Shader Renderer Tiling Parameter Buffer Pixel Processing Pixel Shader

51 Tile Based Rendering Rendering pass Render Server Core Animation Application Core Animation OpenGL Tiler GPU Command Buffer Vertex Processing Vertex Shader Renderer Tiling Parameter Buffer Pixel Processing Pixel Shader Render Buffer

52 Masking Rendering passes Render Server Core Animation OpenGL Application Core Animation GPU Command Buffer

53 Masking Rendering passes Render Server Application Core Animation Core Animation OpenGL Command Buffer Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Mask Texture GPU Pass 1 Render layer mask to texture

54 Masking Rendering passes Render Server Application Core Animation Core Animation OpenGL Command Buffer Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Mask Texture GPU Pass 1 Render layer mask to texture Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Layer Texture Pass 2 Render layer content to texture

55 Masking Rendering passes Render Server Application Core Animation Core Animation OpenGL Command Buffer Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Mask Texture GPU Pass 1 Render layer mask to texture Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Layer Texture Pass 2 Render layer content to texture Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Frame Buffer Compositing pass Apply mask to content texture

56 UIBlurEffect Axel Wefers ios Software Engineer

57 UIVisualEffectView with UIBlurEffect UIBlurEffect styles No effect Extra light Light Dark

58 UIVisualEffectView with UIBlurEffect Rendering passes (best case) Command Buffer GPU

59 UIVisualEffectView with UIBlurEffect Rendering passes (best case) Tiler Tiling Parameter Buffer Pixel Processing Pixel Shader Content GPU Pass 1 Vertex Processing Command Buffer Vertex Shader Renderer Render content

60 UIVisualEffectView with UIBlurEffect Rendering passes (best case) Command Buffer Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Content GPU Pass 1 Render content Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Downscaled Content Pass 2 Capture content

61 UIVisualEffectView with UIBlurEffect Rendering passes (best case) Command Buffer Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Content GPU Pass 1 Render content Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Downscaled Content Pass 2 Capture content Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Blur X Pass 3 Horizontal blur Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Blur Y Pass 4 Vertical blur

62 UIVisualEffectView with UIBlurEffect Rendering passes (best case) Command Buffer Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Content GPU Pass 1 Render content Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Downscaled Content Pass 2 Capture content Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Blur X Pass 3 Horizontal blur Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Blur Y Pass 4 Vertical blur Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Frame Buffer Compositing pass Upscale and tint

63 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air

64 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms

65 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms

66 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1

67 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2

68 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2 Pass 3

69 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2 Pass 3 Pass 4

70 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2 Pass 3 Pass 4 Pass 5

71 UIVisualEffectView with UIBlurEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms

72 UIVisualEffectView with UIBlurEffect Fullscreen performance ipad (3rd generation) ipad Air UIBlurEffectStyleExtraLight UIBlurEffectStyleLight UIBlurEffectStyleDark GPU time in milliseconds (smaller is better)

73 UIVisualEffectView with UIBlurEffect Fullscreen performance ipad (3rd generation) ipad Air UIBlurEffectStyleExtraLight UIBlurEffectStyleLight UIBlurEffectStyleDark GPU time in milliseconds (smaller is better)

74 UIVisualEffectView with UIBlurEffect UIBlurEffect support Device Blur Tint ipad 2 ipad (3rd generation) ipad (4th generation) ipad Air ipad mini ipad mini Retina display All iphones ipod touch

75 UIVisualEffectView with UIBlurEffect Performance considerations UIBlurEffect adds multiple offscreen passes depending on style Only dirty regions are redrawn Effect is very costly UI can easily be GPU bound Keep bounds of view as small as possible Make sure to budget for effect

76 UIVibrancyEffect Axel Wefers ios Software Engineer

77 UIVisualEffectView with UIVibrancyEffect UIVibrancyEffect styles Extra light Light Dark

78 UIVisualEffectView with UIVibrancyEffect UIVibrancyEffect styles Extra light Light Dark

79 UIVisualEffectView with UIVibrancyEffect UIVibrancyEffect styles Extra light Light Dark

80 UIVisualEffectView with UIVibrancyEffect Rendering passes Render Server Core Animation Application Core Animation OpenGL GPU Command Buffer

81 UIVisualEffectView with UIVibrancyEffect Rendering passes Render Server Core Animation Application Core Animation OpenGL Command Buffer Blur Effect GPU Pass 1 to 5 Render blur effect

82 UIVisualEffectView with UIVibrancyEffect Rendering passes Render Server Core Animation Application Core Animation OpenGL Command Buffer Blur Effect GPU Pass 1 to 5 Render blur effect Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Layer Texture Pass 6 Render layer content to texture

83 UIVisualEffectView with UIVibrancyEffect Rendering passes Render Server Core Animation Application Core Animation OpenGL Command Buffer Blur Effect GPU Pass 1 to 5 Render blur effect Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Layer Texture Pass 6 Render layer content to texture Tiler Vertex Processing Vertex Shader Tiling Parameter Buffer Renderer Pixel Processing Pixel Shader Frame Buffer Compositing pass Apply filter to content texture

84 UIVisualEffectView with UIVibrancyEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2 Pass 3 Pass 4 Pass 5 Pass 6 Pass 7

85 UIVisualEffectView with UIVibrancyEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2 Pass 3 Pass 4 Pass 5 Pass 6 Pass 7

86 UIVisualEffectView with UIVibrancyEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms Pass 1 Pass 2 Pass 3 Pass 4 Pass 5 Pass 6 Pass 7

87 UIVisualEffectView with UIVibrancyEffect GPU utilization, fullscreen, ipad Air Tiler Vertex processing Renderer Pixel processing ms VBlank interrupt Every ms

88 UIVisualEffectView with UIVibrancyEffect Fullscreen performance ipad (3rd generation) ipad Air UIBlurEffectStyleExtraLight UIBlurEffectStyleLight UIBlurEffectStyleDark GPU time in milliseconds (smaller is better)

89 UIVisualEffectView with UIVibrancyEffect Fullscreen performance ipad (3rd generation) ipad Air UIBlurEffectStyleExtraLight UIBlurEffectStyleLight UIBlurEffectStyleDark GPU time in milliseconds (smaller is better)

90 UIVisualEffectView with UIVibrancyEffect Performance considerations UIVibrancyEffect adds two offscreen passes UIVibrancyEffect uses expensive compositing filter for content Use UIVibrancyEffect on small regions Only dirty regions are redrawn UIVibrancyEffect is very costly on all devices UI can easily be GPU bound Keep bounds of view as small as possible Make sure to budget for effects

91 Rasterization Performance considerations Use to composite to image once with GPU Enable with shouldrasterize property on CALayer Extra offscreen passes when updating content Do not overuse, cache size is limited to 2.5x of screen size Rasterized images evicted from cache if unused for more than 100ms

92 Rasterization Typical use cases Avoid redrawing expensive effects for static content Avoid redrawing of complex view hierarchies

93 Group Opacity Performance considerations Disable with allowsgroupopacity property on CALayer Will introduce offscreen passes: If layer is not opaque (opacity = 1.0) And if layer has nontrivial content (child layers or background image) Sub view hierarchy needs to be composited before being blended Always turn it off if not needed

94 Tools Michael Ingrassia ios Software Engineer

95 Performance Investigation Mindset

96 Performance Investigation Mindset What is the frame rate? Goal is always 60 frames per second

97 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Goal is always 60 frames per second Lower utilization is desired and saves battery

98 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Goal is always 60 frames per second Lower utilization is desired and saves battery GPU is desirable but know when CPU makes sense

99 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Too many offscreen passes? Goal is always 60 frames per second Lower utilization is desired and saves battery GPU is desirable but know when CPU makes sense Fewer is better

100 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Too many offscreen passes? Too much blending? Goal is always 60 frames per second Lower utilization is desired and saves battery GPU is desirable but know when CPU makes sense Fewer is better Less is better

101 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Too many offscreen passes? Too much blending? Any strange image formats or sizes? Goal is always 60 frames per second Lower utilization is desired and saves battery GPU is desirable but know when CPU makes sense Fewer is better Less is better Avoid on-the-fly conversions or resizing

102 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Too many offscreen passes? Too much blending? Any strange image formats or sizes? Any expensive views or effects? Goal is always 60 frames per second Lower utilization is desired and saves battery GPU is desirable but know when CPU makes sense Fewer is better Less is better Avoid on-the-fly conversions or resizing Understand the cost of what is in use

103 Performance Investigation Mindset What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Too many offscreen passes? Too much blending? Any strange image formats or sizes? Any expensive views or effects? Anything unexpected in hierarchy? Goal is always 60 frames per second Lower utilization is desired and saves battery GPU is desirable but know when CPU makes sense Fewer is better Less is better Avoid on-the-fly conversions or resizing Understand the cost of what is in use Know the actual view hierarchy

104 Tools Instruments Core Animation instrument OpenGL ES Driver instrument Simulator Color debug options Xcode View debugging

105 Instruments Core Animation template

106 Instruments Core Animation template

107 Core Animation Instrument Measuring frame rate

108 Core Animation Instrument Measuring frame rate

109 Core Animation Instrument Measuring frame rate

110 Core Animation Instrument Measuring frame rate

111 Time Profiler Instrument CPU utilization

112 Time Profiler Instrument CPU utilization

113 Time Profiler Instrument CPU utilization

114 Core Animation Instrument Color debug options

115 Core Animation Instrument Color debug options

116 Core Animation Instrument Color debug options

117 Core Animation Instrument Color blended layers

118 Core Animation Instrument Color hits green and misses red

119 Core Animation Instrument Color copied images

120 Core Animation Instrument Color misaligned images

121 Core Animation Instrument Color offscreen-rendered yellow

122 Core Animation Instrument Color OpenGL fast path blue

123 Core Animation Instrument Flash updated regions

124 Performance Investigation Mindset Core Animation instrument summary What is the frame rate? Goal is always 60 frames per second Any unnecessary CPU rendering? GPU is desirable but know when CPU makes sense Too many offscreen passes? Fewer is better Too much blending? Less is better Any strange image formats or sizes? Avoid on-the-fly conversions or resizing

125 ios Simulator Coloring Options

126 Instruments OpenGL ES Driver template

127 Instruments OpenGL ES Driver template

128 OpenGL ES Driver Instrument Selecting statistics to list

129 OpenGL ES Driver Instrument Selecting statistics to list

130 OpenGL ES Driver Instrument Selecting statistics to list

131 OpenGL ES Driver Instrument GPU utilization

132 OpenGL ES Driver Instrument GPU utilization

133 OpenGL ES Driver Instrument GPU utilization

134 Time Profiler Instrument CPU utilization

135 Time Profiler Instrument CPU utilization

136 Time Profiler Instrument CPU utilization

137 Performance Investigation Mindset OpenGL ES Driver instrument summary What is the frame rate? Goal is always 60 frames per second CPU or GPU bound? Lower utilization is desired and saves battery Any unnecessary CPU rendering? GPU is desirable but know when CPU make sense

138 Xcode View debugging

139 Xcode View debugging

140 Xcode View debugging

141 Xcode View debugging

142 Performance Investigation Mindset Xcode view debugging summary Any expensive views or effects? Understand the cost of what is in use Anything unexpected in hierarchy? Know the actual view hierarchy

143 Case Studies Michael Ingrassia ios Software Engineer

144 Case Studies Explore several scenarios Measure performance on different devices Keep the same appearance with better performance

145 Fictitious Photo Application Case study Simple table view Each cell shows a photo thumbnail and some text Each photo has a small shadow

146 Measure Frame Rate on iphone 5s OpenGL ES Driver instrument

147 Measure Frame Rate on iphone 5s OpenGL ES Driver instrument

148 Awesome Ship it?

149 Fictitious Photo Application ipod touch scrolling performance What about the performance on other devices?

150 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

151 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

152 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

153 Analyzing View Hierarchy on ipod touch Xcode view debugging

154 Analyzing View Hierarchy on ipod touch Xcode view debugging

155 Color Offscreen-Rendered Yellow Core Animation instrument

156 How Are We Setting up the Shadow?

157 How Are We Setting up the Shadow? We are asking Core Animation to generate the shadow CALayer *imageviewlayer = cell.imageview.layer; imageviewlayer.shadowcolor = [UIColor blackcolor].cgcolor; imageviewlayer.shadowopacity = 1.0; imageviewlayer.shadowradius = 2.0; imageviewlayer.shadowoffset = CGSizeMake(1.0, 1.0);

158 How Are We Setting up the Shadow? We are asking Core Animation to generate the shadow CALayer *imageviewlayer = cell.imageview.layer; imageviewlayer.shadowcolor = [UIColor blackcolor].cgcolor; imageviewlayer.shadowopacity = 1.0; imageviewlayer.shadowradius = 2.0; imageviewlayer.shadowoffset = CGSizeMake(1.0, 1.0); Perhaps there is a more efficient way imageviewlayer.shadowpath = CGPathCreateWithRect(imageRect, NULL);

159 Color Offscreen-Rendered Yellow Core Animation instrument

160 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

161 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

162 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

163 Awesome Can we ship it now?

164 Measure Frame Rate on iphone 4s OpenGL ES Driver instrument

165 Measure Frame Rate on iphone 4s OpenGL ES Driver instrument

166 Measure Frame Rate on iphone 4s OpenGL ES Driver instrument

167 Fictitious Photo Application Performance across devices CA Shadow iphone 5s iphone 5 iphone 4s ipod touch shadowpath Frame Rate (target is 60 fps) 60

168 Awesome Ship it

169 Fictitious Photo Application Summary Offscreen passes are expensive Use Core Animation instrument to find them Know what you can do to avoid them Measure performance across different devices Use OpenGL ES Driver instrument for GPU time Use Time Profiler instrument for CPU time Know your view hierarchy and any hidden costs This is especially true for table cells and scrolling

170 Fictitious Contacts Application Case study Simple table view Each cell shows a round thumbnail and some text

171 Fictitious Contacts Application Performance across devices 60 iphone 5s iphone 5 iphone 4s ipod touch Frame Rate (target is 60 fps)

172 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

173 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

174 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

175 Color Offscreen-Rendered Yellow Core Animation instrument

176 How Are We Achieving Round Thumbnails?

177 How Are We Achieving Round Thumbnails? We are asking Core Animation to mask the image CALayer *imageviewlayer = cell.imageview.layer; imageviewlayer.cornerradius = imageheight / 2.0; imageviewlayer.maskstobounds = YES;

178 How Are We Achieving Round Thumbnails? We are asking Core Animation to mask the image CALayer *imageviewlayer = cell.imageview.layer; imageviewlayer.cornerradius = imageheight / 2.0; imageviewlayer.maskstobounds = YES; Perhaps there is a more efficient way Don t mask on the fly, pre-generate thumbnails as round, or

179 How Are We Achieving Round Thumbnails? We are asking Core Animation to mask the image CALayer *imageviewlayer = cell.imageview.layer; imageviewlayer.cornerradius = imageheight / 2.0; imageviewlayer.maskstobounds = YES; Perhaps there is a more efficient way Don t mask on the fly, pre-generate thumbnails as round, or If that is not possible, fake it - Table background is solid white - Render a white inverted circle on top of square thumbnail asset - Reducing offscreen passes but increasing blending, still a net performance win

180 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

181 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

182 Measure Frame Rate on ipod touch OpenGL ES Driver instrument

183 Fictitious Contacts Application Performance across devices before iphone 5s iphone 5 iphone 4s ipod touch after Frame Rate (target is 60 fps)

184 Fictitious Contacts Application Summary Offscreen passes are expensive Use Core Animation instrument to find them Know what you can do to avoid them Measure performance across different devices Use OpenGL ES Driver instrument for GPU time Use Time Profiler instrument for CPU time Know your view hierarchy and any hidden costs This is especially true for table cells and scrolling

185 Performance Investigation Mindset Summary What is the frame rate? CPU or GPU bound? Any unnecessary CPU rendering? Too many offscreen passes? Too much blending? Any strange image formats or sizes? Any expensive views or effects? Anything unexpected in hierarchy? Core Animation or OpenGL ES Driver instrument OpenGL ES Driver and Time Profiler instrument Time Profiler instrument Core Animation instrument Core Animation instrument Core Animation instrument Xcode View Debugger Xcode View Debugger

186 Summary Core Animation pipeline Rendering concepts UIBlurEffect UIVibrancyEffect Profiling tools Case studies

187 More Information Jake Behrens App Frameworks Evangelist Dave DeLong Developer Tools Evangelist Documentation Core Animation CoreAnimation_guide/Introduction/Introduction.html Apple Developer Forums

188 Related Sessions Improving Your App with Instruments Marina Tuesday 4:30PM Debugging in Xcode 6 Marina Wednesday 10:15AM Writing Energy Efficient Code, Part 1 Russian Hill Wednesday 10:15AM Writing Energy Efficient Code, Part 2 Russian Hill Wednesday 11:30AM Creating Custom ios User Interfaces Marina Wednesday 3:15PM Building Interruptible and Responsive Interactions Presidio Friday 11:30AM

189 Labs Core Animation and Quartz 2D Lab Graphics and Games Lab A Tuesday 2:00PM Interface Builder and Live Views Lab Tools Lab C Wednesday 9:00AM Power and Performance Lab Core OS Lab B Wednesday 2:00PM Dynamics, View Animations, and Core Animation Lab Frameworks Lab A Thursday 9:00AM Power and Performance Lab Core OS Lab A Thursday 3:15PM Visual Effects and Appearance Customization Lab Frameworks Lab A Friday 9:00AM

190

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,

More information

Optimizing AAA Games for Mobile Platforms

Optimizing AAA Games for Mobile Platforms Optimizing AAA Games for Mobile Platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Epic Games, Unreal Engine 15 years in the industry 30 years of programming C64 demo

More information

GPU Architecture. Michael Doggett ATI

GPU Architecture. Michael Doggett ATI GPU Architecture Michael Doggett ATI GPU Architecture RADEON X1800/X1900 Microsoft s XBOX360 Xenos GPU GPU research areas ATI - Driving the Visual Experience Everywhere Products from cell phones to super

More information

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing

More information

Developer Tools. Tim Purcell NVIDIA

Developer Tools. Tim Purcell NVIDIA Developer Tools Tim Purcell NVIDIA Programming Soap Box Successful programming systems require at least three tools High level language compiler Cg, HLSL, GLSL, RTSL, Brook Debugger Profiler Debugging

More information

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Performance Optimization and Debug Tools for mobile games with PlayCanvas Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with

More information

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group Shader Model 3.0 Ashu Rege NVIDIA Developer Technology Group Talk Outline Quick Intro GeForce 6 Series (NV4X family) New Vertex Shader Features Vertex Texture Fetch Longer Programs and Dynamic Flow Control

More information

How To Develop An App For Ios (Windows)

How To Develop An App For Ios (Windows) Mobile Application Development Lecture 14 ios SDK 2013/2014 Parma Università degli Studi di Parma Lecture Summary ios operating system ios SDK Tools of the trade ModelViewController MVC interaction patterns

More information

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1 Welcome to GUI! Mechanics 26/02/2014 1 Requirements Info If you don t know C++, you CAN take this class additional time investment required early on GUI Java to C++ transition tutorial on course website

More information

Low power GPUs a view from the industry. Edvard Sørgård

Low power GPUs a view from the industry. Edvard Sørgård Low power GPUs a view from the industry Edvard Sørgård 1 ARM in Trondheim Graphics technology design centre From 2006 acquisition of Falanx Microsystems AS Origin of the ARM Mali GPUs Main activities today

More information

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005 Recent Advances and Future Trends in Graphics Hardware Michael Doggett Architect November 23, 2005 Overview XBOX360 GPU : Xenos Rendering performance GPU architecture Unified shader Memory Export Texture/Vertex

More information

The Future Of Animation Is Games

The Future Of Animation Is Games The Future Of Animation Is Games 王 銓 彰 Next Media Animation, Media Lab, Director [email protected] The Graphics Hardware Revolution ( 繪 圖 硬 體 革 命 ) : GPU-based Graphics Hardware Multi-core (20 Cores

More information

Introduction to Imagery and Raster Data in ArcGIS

Introduction to Imagery and Raster Data in ArcGIS Esri International User Conference San Diego, California Technical Workshops July 25, 2012 Introduction to Imagery and Raster Data in ArcGIS Simon Woo slides Cody Benkelman - demos Overview of Presentation

More information

Objective C and iphone App

Objective C and iphone App Objective C and iphone App 6 Months Course Description: Understanding the Objective-C programming language is critical to becoming a successful iphone developer. This class is designed to teach you a solid

More information

OpenGL Performance Tuning

OpenGL Performance Tuning OpenGL Performance Tuning Evan Hart ATI Pipeline slides courtesy John Spitzer - NVIDIA Overview What to look for in tuning How it relates to the graphics pipeline Modern areas of interest Vertex Buffer

More information

INTRODUCTION TO RENDERING TECHNIQUES

INTRODUCTION TO RENDERING TECHNIQUES INTRODUCTION TO RENDERING TECHNIQUES 22 Mar. 212 Yanir Kleiman What is 3D Graphics? Why 3D? Draw one frame at a time Model only once X 24 frames per second Color / texture only once 15, frames for a feature

More information

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio OpenGL Insights Edited by Patrick Cozzi and Christophe Riccio Browser Graphics Analysis and Optimizations 36 Chris Dirks and Omar A. Rodriguez 36.1 Introduction Understanding performance bottlenecks in

More information

ios Technology Overview

ios Technology Overview ios Technology Overview Contents About the ios Technologies 7 At a Glance 7 The ios Architecture is Layered 7 The ios Technologies Are Packaged as Frameworks 8 ios and OS X Share Many of the Same Frameworks

More information

Graphic Design. Background: The part of an artwork that appears to be farthest from the viewer, or in the distance of the scene.

Graphic Design. Background: The part of an artwork that appears to be farthest from the viewer, or in the distance of the scene. Graphic Design Active Layer- When you create multi layers for your images the active layer, or the only one that will be affected by your actions, is the one with a blue background in your layers palette.

More information

Comp 410/510. Computer Graphics Spring 2016. Introduction to Graphics Systems

Comp 410/510. Computer Graphics Spring 2016. Introduction to Graphics Systems Comp 410/510 Computer Graphics Spring 2016 Introduction to Graphics Systems Computer Graphics Computer graphics deals with all aspects of creating images with a computer Hardware (PC with graphics card)

More information

ios Application Development &

ios Application Development & Introduction of ios Application Development & Swift Programming Language Presented by Chii Chang [email protected] Outlines Basic understanding about ios App Development Development environment: Xcode IDE Foundations

More information

GPU Profiling with AMD CodeXL

GPU Profiling with AMD CodeXL GPU Profiling with AMD CodeXL Software Profiling Course Hannes Würfel OUTLINE 1. Motivation 2. GPU Recap 3. OpenCL 4. CodeXL Overview 5. CodeXL Internals 6. CodeXL Profiling 7. CodeXL Debugging 8. Sources

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu [email protected] Faculty of Mathematics and Computer Science University of Bucharest Content Key concepts

More information

Improving Your App with Instruments

Improving Your App with Instruments Tools #WWDC14 Improving Your App with Instruments Session 418 Daniel Delwood Software Radiologist 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER RAMA HOETZLEIN, DEVELOPER TECHNOLOGY, NVIDIA Data Visualizations assist humans with data analysis by representing information

More information

BCC Multi Stripe Wipe

BCC Multi Stripe Wipe BCC Multi Stripe Wipe The BCC Multi Stripe Wipe is a similar to a Horizontal or Vertical Blind wipe. It offers extensive controls to randomize the stripes parameters. The following example shows a Multi

More information

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system. Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce

More information

ACE: After Effects CC

ACE: After Effects CC Adobe Training Services Exam Guide ACE: After Effects CC Adobe Training Services provides this exam guide to help prepare partners, customers, and consultants who are actively seeking accreditation as

More information

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions Module 4: Beyond Static Scalar Fields Dynamic Volume Computation and Visualization on the GPU Visualization and Computer Graphics Group University of California, Davis Overview Motivation and applications

More information

How To Teach Computer Graphics

How To Teach Computer Graphics Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session General Introduction http://www.cs.vu.nl/~graphics/

More information

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen 4.2.2 Powergen 3

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen 4.2.2 Powergen 3 Profiling and Debugging Tools for High-performance Android Applications Stephen Jones, Product Line Manager, NVIDIA ([email protected]) Android By The Numbers 1.3M Android activations per day Android activations

More information

ANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA

ANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA ANDROID DEVELOPER TOOLS TRAINING GTC 2014 Sébastien Dominé, NVIDIA AGENDA NVIDIA Developer Tools Introduction Multi-core CPU tools Graphics Developer Tools Compute Developer Tools NVIDIA Developer Tools

More information

Getting Started with CodeXL

Getting Started with CodeXL AMD Developer Tools Team Advanced Micro Devices, Inc. Table of Contents Introduction... 2 Install CodeXL... 2 Validate CodeXL installation... 3 CodeXL help... 5 Run the Teapot Sample project... 5 Basic

More information

Water Flow in. Alex Vlachos, Valve July 28, 2010

Water Flow in. Alex Vlachos, Valve July 28, 2010 Water Flow in Alex Vlachos, Valve July 28, 2010 Outline Goals & Technical Constraints How Artists Create Flow Maps Flowing Normal Maps in Left 4 Dead 2 Flowing Color Maps in Portal 2 Left 4 Dead 2 Goals

More information

RADEON 9700 SERIES. User s Guide. Copyright 2002, ATI Technologies Inc. All rights reserved.

RADEON 9700 SERIES. User s Guide. Copyright 2002, ATI Technologies Inc. All rights reserved. RADEON 9700 SERIES User s Guide P/N 137-40361-30 Copyright 2002, ATI Technologies Inc. All rights reserved. ATI and all ATI product and product feature names are trademarks and/or registered trademarks

More information

Client Requirement. Master Data Management App. Case Study -

Client Requirement. Master Data Management App. Case Study - Idhasoft is a global world-class organization providing best-of-breed localized business and technology solutions, with continuous innovation and quality backed by best-in-class people Case Study - Master

More information

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA The Evolution of Computer Graphics Tony Tamasi SVP, Content & Technology, NVIDIA Graphics Make great images intricate shapes complex optical effects seamless motion Make them fast invent clever techniques

More information

Finding Performance and Power Issues on Android Systems. By Eric W Moore

Finding Performance and Power Issues on Android Systems. By Eric W Moore Finding Performance and Power Issues on Android Systems By Eric W Moore Agenda Performance & Power Tuning on Android & Features Needed/Wanted in a tool Some Performance Tools Getting a Device that Supports

More information

Continuous Integration with Xcode 6

Continuous Integration with Xcode 6 Tools #WWDC14 Continuous Integration with Xcode 6 Session 415 Brent Shank Software Engineer, Xcode 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008 Radeon GPU Architecture and the series Michael Doggett Graphics Architecture Group June 27, 2008 Graphics Processing Units Introduction GPU research 2 GPU Evolution GPU started as a triangle rasterizer

More information

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Today Course organization Course overview 2 Course Staff Instructor Jürgen Schulze,

More information

TakeMySelfie ios App Documentation

TakeMySelfie ios App Documentation TakeMySelfie ios App Documentation What is TakeMySelfie ios App? TakeMySelfie App allows a user to take his own picture from front camera. User can apply various photo effects to the front camera. Programmers

More information

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August Agenda Introduction The author and ARM Preliminary knowledge Unity Pro, OpenGL ES 3.0 Identify

More information

Finger Paint: Cross-platform Augmented Reality

Finger Paint: Cross-platform Augmented Reality Finger Paint: Cross-platform Augmented Reality Samuel Grant Dawson Williams October 15, 2010 Abstract Finger Paint is a cross-platform augmented reality application built using Dream+ARToolKit. A set of

More information

QNX Software Development Platform 6.6. Screen Graphics Subsystem Developer's Guide

QNX Software Development Platform 6.6. Screen Graphics Subsystem Developer's Guide QNX Software Development Platform 6.6 QNX Software Development Platform 6.6 Screen Graphics Subsystem Developer's Guide 2010 2014, QNX Software Systems Limited, a subsidiary of BlackBerry Limited. All

More information

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation [email protected]

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Modern Graphics Engine Design Sim Dietrich NVIDIA Corporation [email protected] Overview Modern Engine Features Modern Engine Challenges Scene Management Culling & Batching Geometry Management Collision

More information

Create a Poster Using Publisher

Create a Poster Using Publisher Contents 1. Introduction 1. Starting Publisher 2. Create a Poster Template 5. Aligning your images and text 7. Apply a background 12. Add text to your poster 14. Add pictures to your poster 17. Add graphs

More information

Billings Pro ios User Guide (Last updated: Feb 15th, 2016)

Billings Pro ios User Guide (Last updated: Feb 15th, 2016) Billings Pro ios User Guide (Last updated: Feb 15th, 2016) Table of Contents Table of Contents 2 Overview 3 Objective 3 Audience 3 Device Requirements 3 Other requirements 3 About Billings Pro on ios 4

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

Graphical displays are generally of two types: vector displays and raster displays. Vector displays

Graphical displays are generally of two types: vector displays and raster displays. Vector displays Display technology Graphical displays are generally of two types: vector displays and raster displays. Vector displays Vector displays generally display lines, specified by their endpoints. Vector display

More information

Mobile Application Development L06: ios Drawing and Animation

Mobile Application Development L06: ios Drawing and Animation Mobile Application Development L06: ios Drawing and Animation Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9) Views 2 UIView Defines a rectangular area on the screen Responsibilities Draw content

More information

Using Safari to Deliver and Debug a Responsive Web Design

Using Safari to Deliver and Debug a Responsive Web Design Media #WWDC15 Using Safari to Deliver and Debug a Responsive Web Design Session 505 Jono Wells Safari and WebKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted

More information

Dynamic Resolution Rendering

Dynamic Resolution Rendering Dynamic Resolution Rendering Doug Binks Introduction The resolution selection screen has been one of the defining aspects of PC gaming since the birth of games. In this whitepaper and the accompanying

More information

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH [email protected] SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH [email protected] SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA GFLOPS 3500 3000 NVPRO-PIPELINE Peak Double Precision FLOPS GPU perf improved

More information

Golfshot : Golf GPS User Guide

Golfshot : Golf GPS User Guide Golfshot : Golf GPS User Guide Version 3.0 Scorecard Version 3.0 QUICK TIPS: New in 3.0: Track Menu Track Menu Press the Golf Ball icon in the upper left corner to peel back the Track Menu. Here you can

More information

Android Architecture. Alexandra Harrison & Jake Saxton

Android Architecture. Alexandra Harrison & Jake Saxton Android Architecture Alexandra Harrison & Jake Saxton Overview History of Android Architecture Five Layers Linux Kernel Android Runtime Libraries Application Framework Applications Summary History 2003

More information

The Dennis Technique for SketchUp Models in Photoshop

The Dennis Technique for SketchUp Models in Photoshop The Dennis Technique for SketchUp Models in Photoshop The big concept is to put a Black & White drawing over a coloured one and then artistically erase just enough of the top Black and White so that essential

More information

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro) Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Brains Eden, 28 th June 2013 Agenda Introduction The author ARM Ltd. What do you need to have What do you need to know Identify

More information

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis [email protected] 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system

More information

genie app and genie mobile app

genie app and genie mobile app genie app and genie mobile app User Manual 350 East Plumeria Drive San Jose, CA 95134 USA June 2012 202-10933-02 v1.0 2012 NETGEAR, Inc. All rights reserved No part of this publication may be reproduced,

More information

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2 Dashboard Skin Tutorial For ETS2 HTML5 Mobile Dashboard v3.0.2 Dashboard engine overview Dashboard menu Skin file structure config.json Available telemetry properties dashboard.html dashboard.css Telemetry

More information

Lecture Notes, CEng 477

Lecture Notes, CEng 477 Computer Graphics Hardware and Software Lecture Notes, CEng 477 What is Computer Graphics? Different things in different contexts: pictures, scenes that are generated by a computer. tools used to make

More information

Visualizing Data: Scalable Interactivity

Visualizing Data: Scalable Interactivity Visualizing Data: Scalable Interactivity The best data visualizations illustrate hidden information and structure contained in a data set. As access to large data sets has grown, so has the need for interactive

More information

IV3Dm provides global settings which can be set prior to launching the application and are available through the device settings menu.

IV3Dm provides global settings which can be set prior to launching the application and are available through the device settings menu. ImageVis3D Mobile This software can be used to display and interact with different kinds of datasets - such as volumes or meshes - on mobile devices, which currently includes iphone and ipad. A selection

More information

JavaFX Session Agenda

JavaFX Session Agenda JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user

More information

ACE: After Effects CS6

ACE: After Effects CS6 Adobe Training Services Exam Guide ACE: After Effects CS6 Adobe Training Services provides this exam guide to help prepare partners, customers, and consultants who are actively seeking accreditation as

More information

Sprite Kit Programming Guide

Sprite Kit Programming Guide Sprite Kit Programming Guide Contents About Sprite Kit 9 At a Glance 10 Sprite Content is Drawn by Presenting Scenes Inside a Sprite View 11 A Node Tree Defines What Appears in a Scene 11 Textures Hold

More information

Beginning Android 4. Games Development. Mario Zechner. Robert Green

Beginning Android 4. Games Development. Mario Zechner. Robert Green Beginning Android 4 Games Development Mario Zechner Robert Green Contents Contents at a Glance About the Authors Acknowledgments Introduction iv xii xiii xiv Chapter 1: Android, the New Kid on the Block...

More information

Touchstone -A Fresh Approach to Multimedia for the PC

Touchstone -A Fresh Approach to Multimedia for the PC Touchstone -A Fresh Approach to Multimedia for the PC Emmett Kilgariff Martin Randall Silicon Engineering, Inc Presentation Outline Touchstone Background Chipset Overview Sprite Chip Tiler Chip Compressed

More information

Gauge Drawing Tool... 8. Slider Drawing Tool... 8. Toggle Button Drawing Tool... 8. One-Way List Drawing Tool... 8

Gauge Drawing Tool... 8. Slider Drawing Tool... 8. Toggle Button Drawing Tool... 8. One-Way List Drawing Tool... 8 v. 20120510 Table of Contents RTiPanel Overview and Requirements... 3 Software Requirements:... 3 Hardware Requirements:... 3 Network Requirements:... 3 Licensing Requirements:... 4 Basic Integration Designer

More information

Advanced Rendering for Engineering & Styling

Advanced Rendering for Engineering & Styling Advanced Rendering for Engineering & Styling Prof. B.Brüderlin Brüderlin,, M Heyer 3Dinteractive GmbH & TU-Ilmenau, Germany SGI VizDays 2005, Rüsselsheim Demands in Engineering & Styling Engineering: :

More information

Getting Started: Creating the Backdrop

Getting Started: Creating the Backdrop Adding ipad Animations to Green Screen Videos: Step 1 Getting Started: Creating the Backdrop 1. To start a new project: b. Select the + symbol on the top right of the screen. 2. To add a static background

More information

News. Ad Specifications July 2016

News. Ad Specifications July 2016 News Ad Specifications July 2016 About Advertising on News News runs across iphone, ipod touch and ipad devices. Ad options include a variety of inline and interstitial display banners and pre-roll video

More information

OpenEXR Image Viewing Software

OpenEXR Image Viewing Software OpenEXR Image Viewing Software Florian Kainz, Industrial Light & Magic updated 07/26/2007 This document describes two OpenEXR image viewing software programs, exrdisplay and playexr. It briefly explains

More information

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014 CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014 Introduction Cloud ification < 2013 2014+ Music, Movies, Books Games GPU Flops GPUs vs. Consoles 10,000

More information

Design Your Own Photo Card Add a personal touch to your holiday greetings

Design Your Own Photo Card Add a personal touch to your holiday greetings IMAGE DIANA DAY Design Your Own Photo Card Add a personal touch to your holiday greetings By Diana Day Flat 4x8-inch photo cards, sometimes referred to as slimline cards, are popular for the holidays.

More information

Remote Desktop Protocol Performance

Remote Desktop Protocol Performance MICROSOFT Remote Desktop Protocol Performance Presentation and Hosted Desktop Virtualization Team 10/13/2008 Contents Overview... 3 User Scenarios... 3 Test Setup... 4 Remote Desktop Connection Settings...

More information

2. About iphone ios 5 Development Essentials. 5. Joining the Apple ios Developer Program

2. About iphone ios 5 Development Essentials. 5. Joining the Apple ios Developer Program Table of Contents 1. Preface 2. About iphone ios 5 Development Essentials Example Source Code Feedback 3. The Anatomy of an iphone 4S ios 5 Display Wireless Connectivity Wired Connectivity Memory Cameras

More information

Game Center Programming Guide

Game Center Programming Guide Game Center Programming Guide Contents About Game Center 8 At a Glance 9 Some Game Resources Are Provided at Runtime by the Game Center Service 9 Your Game Displays Game Center s User Interface Elements

More information

Xcode Application note

Xcode Application note 1 Xcode Application note - how to export file from an ios application Feifei Li ECE480 Design Team 10 2 Table of Contents Introduction... 3 Get Started... 3 Familiar with Xcode... 6 Create user interface...

More information

MA-WA1920: Enterprise iphone and ipad Programming

MA-WA1920: Enterprise iphone and ipad Programming MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This

More information

Computer Graphics Hardware An Overview

Computer Graphics Hardware An Overview Computer Graphics Hardware An Overview Graphics System Monitor Input devices CPU/Memory GPU Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and

More information

Outline. srgb DX9, DX10, XBox 360. Tone Mapping. Motion Blur

Outline. srgb DX9, DX10, XBox 360. Tone Mapping. Motion Blur Outline srgb DX9, DX10, XBox 360 Tone Mapping Motion Blur srgb Outline srgb & gamma review Alpha Blending: DX9 vs. DX10 & XBox 360 srgb curve: PC vs. XBox 360 srgb Review Terminology: Color textures are

More information

Image Synthesis. Transparency. computer graphics & visualization

Image Synthesis. Transparency. computer graphics & visualization Image Synthesis Transparency Inter-Object realism Covers different kinds of interactions between objects Increasing realism in the scene Relationships between objects easier to understand Shadows, Reflections,

More information

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011 Graphics Cards and Graphics Processing Units Ben Johnstone Russ Martin November 15, 2011 Contents Graphics Processing Units (GPUs) Graphics Pipeline Architectures 8800-GTX200 Fermi Cayman Performance Analysis

More information

ipad, a revolutionary device - Apple

ipad, a revolutionary device - Apple Flash vs HTML5 ipad, a revolutionary device Apple Lightweight and portable Sufficient battery life Completely Wireless Convenient multitouch interface Huge number of apps (some of them are useful) No Flash

More information

Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module 26. 1- A Simple ios Application

Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module 26. 1- A Simple ios Application FROM 1st TO 4th OF FEBRUARY 2012 contents of the app s creation training track Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module 26. 1- A Simple

More information

Plug-in Software Developer Kit (SDK)

Plug-in Software Developer Kit (SDK) Updated February 2, 2012 2 modo 601 Plug-in Development Kit for PC and Mac The modo 601 Plug-in Software Development Kit provides a set of Application Programming Interfaces (APIs) and numerous source

More information

ios App for Mobile Website! Documentation!

ios App for Mobile Website! Documentation! ios App for Mobile Website Documentation What is IOS App for Mobile Website? IOS App for Mobile Website allows you to run any website inside it and if that website is responsive or mobile compatible, you

More information

PowerPoint 2007 Basics Website: http://etc.usf.edu/te/

PowerPoint 2007 Basics Website: http://etc.usf.edu/te/ Website: http://etc.usf.edu/te/ PowerPoint is the presentation program included in the Microsoft Office suite. With PowerPoint, you can create engaging presentations that can be presented in person, online,

More information

Mobile Phones Operating Systems

Mobile Phones Operating Systems Mobile Phones Operating Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-05-28 José Costa (DEI/IST) Mobile Phones Operating

More information

Operating Systems Introduction

Operating Systems Introduction Operating Systems Introduction Chester Rebeiro IIT Madras Webpage : http://www.cse.iitm.ac.in/~chester/courses/15o_os/index.html The Layers in Systems Applications Operating Systems Computer Organization

More information

Mobile App Design and Development

Mobile App Design and Development Mobile App Design and Development The course includes following topics: Apps Development 101 Introduction to mobile devices and administrative: Mobile devices vs. desktop devices ARM and intel architectures

More information

ios 9 Accessibility Switch Control - The Missing User Guide Updated 09/15/15

ios 9 Accessibility Switch Control - The Missing User Guide Updated 09/15/15 ios 9 Accessibility Switch Control - The Missing User Guide Updated 09/15/15 Apple, ipad, iphone, and ipod touch are trademarks of Apple Inc., registered in the U.S. and other countries. ios is a trademark

More information

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER WEB, HYBRID, NATIVE EXPLAINED June 2013 CRAIG ISAKSON MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER 701.235.5525 888.sundog fax: 701.235.8941 2000 44th St. S Floor 6 Fargo, ND 58103 www.sundoginteractive.com

More information

L20: GPU Architecture and Models

L20: GPU Architecture and Models L20: GPU Architecture and Models scribe(s): Abdul Khalifa 20.1 Overview GPUs (Graphics Processing Units) are large parallel structure of processing cores capable of rendering graphics efficiently on displays.

More information