Symbian3/PDK/Source/GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita
changeset 1 25a17d01db0c
child 3 46218c8b8afa
equal deleted inserted replaced
0:89d6a7a84779 1:25a17d01db0c
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56" xml:lang="en"><title>Graphics
       
    13 Hardware Acceleration</title><shortdesc>This topic describes some of the issues surrounding the use of
       
    14 graphics hardware to improve graphics performance. It also provides a summary
       
    15 of the components that device creators need to adapt to take advantage of
       
    16 graphics hardware. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    17 <section><title>Background</title> <p><b>Graphics acceleration hardware </b> </p> <p>A
       
    18 graphics accelerator or Graphics Processing Unit (GPU) is a dedicated hardware
       
    19 processor that works in parallel with the main processor (CPU). By relieving
       
    20 the CPU of highly intensive graphics processing, a GPU makes it is possible
       
    21 to achieve sophisticated screen displays (such as video, animated graphics
       
    22 and 3D games) without compromising other aspects of performance. </p> <p><b>Animations </b> </p> <p>Animation
       
    23 involves transferring and manipulating large amounts of data (stored as bitmaps
       
    24 or instructions) from one area of memory and putting them into another (the
       
    25 screen buffer). Frame rates may be between 10 and 30 frames per second (depending
       
    26 on requirements and sources). </p> <p><b>Composition </b> </p> <p>Manufacturers
       
    27 of smartphones face the complexity of displaying on the screen a mixture of
       
    28 different types of content, such as streaming video, the camera viewfinder
       
    29 and regular UI elements with animated icons. These different types of content
       
    30 come from different places—such as multimedia sources (streaming video), camera
       
    31 hardware, the Window Server and EGL (3D and vector graphics). The different
       
    32 types of content are displayed in different areas of the screen and are updated
       
    33 by different processes. The graphics system must be capable not only of creating
       
    34 sophisticated graphical output from each source simultaneously but also of
       
    35 composing (compositing) them at up to 30 frames per second. For an introduction
       
    36 to how ScreenPlay handles this challenge, see <xref href="GUID-859CAA08-59C9-5FD3-98DE-6BDD0D6ED50B.dita">Graphics
       
    37 Composition</xref>. </p> <p><b>Optimization </b> </p> <p>GPUs work best when
       
    38 they do so uninterrupted. They usually have a 'long processing pipe' (a lot
       
    39 of data cached in memory) and flushing it or allowing it to empty reduces
       
    40 effectiveness. This can be avoided by avoiding the following: </p> <ul>
       
    41 <li id="GUID-827CF5E4-86EE-5766-BAF4-395205461FF0"><p> <b>Context switching</b>.
       
    42 The working data (such as color information, vertex positions, transformations
       
    43 and textures) is known as the <i>context</i>. If more than one application
       
    44 wants to use the processor at the same time, the processor must swap between
       
    45 them. This involves the processor saving the context from one application,
       
    46 flushing its buffers, and loading the context from the next. Context switching
       
    47 is time consuming and disruptive. </p> </li>
       
    48 <li id="GUID-5C98575F-A0EA-5B9F-ACCC-C7A0D2B93058"><p> <b>Copying and reformatting
       
    49 data</b>. Changing the format and copying pixel data involves time and memory.
       
    50 If the GPU and CPU cannot share memory and data formats, much time, processing
       
    51 power and memory is required to copy and convert data. </p> </li>
       
    52 </ul> <p>ScreenPlay avoids context switching and reformatting and copying
       
    53 data wherever possible. </p> <p><b>Hardware variety </b> </p> <p>The combination
       
    54 of hardware acceleration, animation and composition would be a substantial
       
    55 challenge in a fixed, dedicated hardware architecture. The Symbian platform,
       
    56 however, is designed to operate on a variety of hardware architectures, only
       
    57 some of which are capable of graphics acceleration and processing. The Symbian
       
    58 graphics subsystem can be customized to take advantage of a variety graphics
       
    59 processing hardware. Customization is via 'back end' components which do not
       
    60 affect the public API. </p> </section>
       
    61 <section><title>The hardware adaptation components</title> <p>Here we provide
       
    62 information about which graphics components device creators can adapt or replace.
       
    63 Components that can be adapted or replaced to suit the hardware are generally
       
    64 called <i>adaptations</i>. Adaptable and replaceable components that do not
       
    65 depend on the hardware are called <i>customizations</i> and are indicated
       
    66 by an asterisk (*) in the following table. </p> <p>The details vary depending
       
    67 on whether the <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> or <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref> variant
       
    68 is in use. </p> <table id="GUID-C401C8AE-7EE2-5B8F-9B17-B8C2E5E6B5B6">
       
    69 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    70 <thead>
       
    71 <row>
       
    72 <entry>ScreenPlay</entry>
       
    73 <entry>Non-ScreenPlay</entry>
       
    74 </row>
       
    75 </thead>
       
    76 <tbody>
       
    77 <row>
       
    78 <entry><xref href="GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita">OpenGLES Implementation</xref> </entry>
       
    79 <entry><xref href="GUID-04D917A1-E1A0-5149-9660-80A1146D0984.dita">OpenGLES Implementation</xref> </entry>
       
    80 </row>
       
    81 <row>
       
    82 <entry><xref href="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita">OpenVG Implementation</xref></entry>
       
    83 <entry><xref href="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita">OpenVG Implementation</xref> </entry>
       
    84 </row>
       
    85 <row>
       
    86 <entry><xref href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita">EGL Implementation</xref> </entry>
       
    87 <entry><xref href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita">EGL Implementation</xref> </entry>
       
    88 </row>
       
    89 <row>
       
    90 <entry><xref href="GUID-9E7D563E-9FFB-5FA9-8944-9CBAC281FDD2.dita">Screen Driver</xref> </entry>
       
    91 <entry><xref href="GUID-9E7D563E-9FFB-5FA9-8944-9CBAC281FDD2.dita">Screen Driver</xref> </entry>
       
    92 </row>
       
    93 <row>
       
    94 <entry><xref href="GUID-D76C7759-739D-5C98-B718-7297687FE630.dita">Extended Bitmap
       
    95 Rasterizer Plug-in</xref> </entry>
       
    96 <entry><xref href="GUID-D76C7759-739D-5C98-B718-7297687FE630.dita">Extended Bitmap
       
    97 Rasterizer Plug-in</xref> </entry>
       
    98 </row>
       
    99 <row>
       
   100 <entry><xref href="GUID-BB4F5388-32EA-5A2E-845D-E5339D2040E9.dita">DirectGDI Adaptation</xref> </entry>
       
   101 <entry/>
       
   102 </row>
       
   103 <row>
       
   104 <entry><xref href="GUID-5E46C0EE-BD7D-5C85-8083-575BB2888AA7.dita">Graphics Resource
       
   105 Adaptation</xref> </entry>
       
   106 <entry/>
       
   107 </row>
       
   108 
       
   109 <row>
       
   110 <entry><xref href="GUID-8BEE0411-C6E9-5840-BE22-EC271A4D97DD.dita">OpenWF Composition
       
   111 Engine</xref></entry>
       
   112 <entry/>
       
   113 </row>
       
   114 <row>
       
   115 <entry><xref href="GUID-C7B420DE-CEDA-5D3F-8095-71136E862CDF.dita">Surface Manager</xref>  </entry>
       
   116 <entry/>
       
   117 </row>
       
   118 <row>
       
   119 <entry><xref href="GUID-8E8FE99A-5F4D-5B0F-87AB-A58EB4BEB6E9.dita">Surface Update</xref> </entry>
       
   120 <entry/>
       
   121 </row>
       
   122 <row>
       
   123 <entry><xref href="GUID-3A2785D4-6185-50C3-8D7E-5D94CD2B7C98.dita">Render Stages</xref>* </entry>
       
   124 <entry/>
       
   125 </row>
       
   126 </tbody>
       
   127 </tgroup>
       
   128 </table> </section>
       
   129 </conbody><related-links>
       
   130 <link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics
       
   131 Concepts</linktext></link>
       
   132 <link href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"><linktext>The ScreenPlay
       
   133 Architecture</linktext></link>
       
   134 <link href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita"><linktext>The Non-ScreenPlay
       
   135 Architecture</linktext></link>
       
   136 </related-links></concept>