Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-8ED4E590-4FDC-4267-87D9-C7E5E57D6B7E" xml:lang="en"><title>EGL
Resource Profiling Extension</title><shortdesc>This topic describes the EGL resource profiling extension, which
provides a way to retrieve information about GPU resource utilization. UI
middleware can use this extension to find out how much memory is being used
by the objects created by EGL.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>There are two Nokia EGL resource profiling extensions:</p>
<ul>
<li><p><b>EGL_NOK_resource_profiling</b>. This extension retrieves data about
GPU resource usage level in a synchronous way. EGL client applications can
call <codeph>eglQueryProfilingDataNOK()</codeph> after <codeph>eglInitialize()</codeph> to
obtain the current resource profiling information.</p></li>
<li><p><b>EGL_NOK_resource_profiling2</b>. This extension is based on the
EGL_NOK_resource_profiling extension. EGL_NOK_resource_profiling2 additionally
provides asynchronous notification of memory usage changes using resource
profiling sync objects. This uses the <xref href="GUID-DEA883D0-7C53-407A-AC5D-0A3208E667C7.dita">EGL_KHR_reusable_sync </xref> extension.</p></li>
</ul>
<section id="GUID-A91A60AC-1DAB-4C48-8B7C-93993DA0A79A"><title><codeph>eglQueryProfilingDataNOK</codeph></title><p>The <codeph>eglQueryProfilingDataNOK()</codeph> extension function retrieves the resource profiling statistics, such as
the total amount of graphics memory or the amount of private memory used by
a process. </p><p>To obtain an extension function, clients call <codeph>eglGetProcAddress()</codeph> and
pass in the function name.</p><p><b>Process ID</b></p><p> The Symbian platform
has an 8-byte (64-bit) process ID. <codeph>EGLNativeProcessIdTypeNOK</codeph> is
defined as follows:</p><codeblock xml:space="preserve">typedef TUint64 EGLNativeProcessIdTypeNOK;</codeblock><p>When
the returned profiling data contains the <codeph>EGL_PROF_PROCESS_ID_NOK</codeph> attribute,
the next two 32-bit data elements encode the Symbian 64-bit procecss ID. EGL
Client applications can reconstruct the process ID as follows: </p><codeblock xml:space="preserve">EGLNativeProcessIdTypeNOK processId = ((EGLNativeProcessIdTypeNOK)(data[i]))
+(((EGLNativeProcessIdTypeNOK)(data[i + 1]))<<32);
</codeblock></section>
</conbody><related-links>
<link href="GUID-A5914CFF-6F86-53E8-9928-36D3379835B1.dita"><linktext>EGL Interface
Overview</linktext></link>
<link href="GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita"><linktext>Symbian-Specific
Behavior</linktext></link>
<link href="GUID-46813F51-370B-5853-917C-6916925A347D.dita"><linktext>EGL Tutorial</linktext>
</link>
<link href="GUID-DC8BFEF5-DA50-52DA-8CE2-5729A4A005F6.dita"><linktext>EGL Collection
Overview</linktext></link>
<link href="GUID-DEA883D0-7C53-407A-AC5D-0A3208E667C7.dita"><linktext>EGL Reusable
Sync Extension</linktext></link>
</related-links></concept>