102f4aeb0Sopenharmony_ci<?xml version="1.0" encoding="UTF-8" standalone="no"?> 202f4aeb0Sopenharmony_ci<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"> 302f4aeb0Sopenharmony_ci <head> 402f4aeb0Sopenharmony_ci <title xmlns:xlink="http://www.w3.org/1999/xlink">eglClientWaitSync - EGL Reference Pages</title> 502f4aeb0Sopenharmony_ci <link rel="stylesheet" type="text/css" href="khronos-man.css"/> 602f4aeb0Sopenharmony_ci <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/> 702f4aeb0Sopenharmony_ci </head> 802f4aeb0Sopenharmony_ci <body> 902f4aeb0Sopenharmony_ci <header/> 1002f4aeb0Sopenharmony_ci <div class="refentry" id="eglClientWaitSync"> 1102f4aeb0Sopenharmony_ci <div class="titlepage"/> 1202f4aeb0Sopenharmony_ci <div class="refnamediv"> 1302f4aeb0Sopenharmony_ci <h2>Name</h2> 1402f4aeb0Sopenharmony_ci <p>eglClientWaitSync — 1502f4aeb0Sopenharmony_ci Wait in the client for a sync object to be signalled 1602f4aeb0Sopenharmony_ci </p> 1702f4aeb0Sopenharmony_ci </div> 1802f4aeb0Sopenharmony_ci <div class="refsynopsisdiv"> 1902f4aeb0Sopenharmony_ci <h2>C Specification</h2> 2002f4aeb0Sopenharmony_ci <div class="funcsynopsis"> 2102f4aeb0Sopenharmony_ci <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> 2202f4aeb0Sopenharmony_ci <tr> 2302f4aeb0Sopenharmony_ci <td> 2402f4aeb0Sopenharmony_ci <code class="funcdef">EGLint <strong class="fsfunc">eglClientWaitSync</strong>(</code> 2502f4aeb0Sopenharmony_ci </td> 2602f4aeb0Sopenharmony_ci <td>(EGLDisplay <var class="pdparam">display</var>, </td> 2702f4aeb0Sopenharmony_ci </tr> 2802f4aeb0Sopenharmony_ci <tr> 2902f4aeb0Sopenharmony_ci <td> </td> 3002f4aeb0Sopenharmony_ci <td>EGLSync <var class="pdparam">sync</var>, </td> 3102f4aeb0Sopenharmony_ci </tr> 3202f4aeb0Sopenharmony_ci <tr> 3302f4aeb0Sopenharmony_ci <td> </td> 3402f4aeb0Sopenharmony_ci <td>EGLint <var class="pdparam">flags</var>, </td> 3502f4aeb0Sopenharmony_ci </tr> 3602f4aeb0Sopenharmony_ci <tr> 3702f4aeb0Sopenharmony_ci <td> </td> 3802f4aeb0Sopenharmony_ci <td>EGLTime <var class="pdparam">timeout</var><code>)</code>;</td> 3902f4aeb0Sopenharmony_ci </tr> 4002f4aeb0Sopenharmony_ci </table> 4102f4aeb0Sopenharmony_ci <div class="funcprototype-spacer"> </div> 4202f4aeb0Sopenharmony_ci </div> 4302f4aeb0Sopenharmony_ci </div> 4402f4aeb0Sopenharmony_ci <div class="refsect1" id="parameters"> 4502f4aeb0Sopenharmony_ci <h2>Parameters</h2> 4602f4aeb0Sopenharmony_ci <div class="variablelist"> 4702f4aeb0Sopenharmony_ci <dl class="variablelist"> 4802f4aeb0Sopenharmony_ci <dt> 4902f4aeb0Sopenharmony_ci <span class="term"> 5002f4aeb0Sopenharmony_ci <em class="parameter"> 5102f4aeb0Sopenharmony_ci <code>display</code> 5202f4aeb0Sopenharmony_ci </em> 5302f4aeb0Sopenharmony_ci </span> 5402f4aeb0Sopenharmony_ci </dt> 5502f4aeb0Sopenharmony_ci <dd> 5602f4aeb0Sopenharmony_ci <p> 5702f4aeb0Sopenharmony_ci Specifies the <abbr class="acronym">EGL</abbr> display connection. 5802f4aeb0Sopenharmony_ci </p> 5902f4aeb0Sopenharmony_ci </dd> 6002f4aeb0Sopenharmony_ci <dt> 6102f4aeb0Sopenharmony_ci <span class="term"> 6202f4aeb0Sopenharmony_ci <em class="parameter"> 6302f4aeb0Sopenharmony_ci <code>sync</code> 6402f4aeb0Sopenharmony_ci </em> 6502f4aeb0Sopenharmony_ci </span> 6602f4aeb0Sopenharmony_ci </dt> 6702f4aeb0Sopenharmony_ci <dd> 6802f4aeb0Sopenharmony_ci <p> 6902f4aeb0Sopenharmony_ci Specifies the sync object to wait on. 7002f4aeb0Sopenharmony_ci </p> 7102f4aeb0Sopenharmony_ci </dd> 7202f4aeb0Sopenharmony_ci <dt> 7302f4aeb0Sopenharmony_ci <span class="term"> 7402f4aeb0Sopenharmony_ci <em class="parameter"> 7502f4aeb0Sopenharmony_ci <code>flags</code> 7602f4aeb0Sopenharmony_ci </em> 7702f4aeb0Sopenharmony_ci </span> 7802f4aeb0Sopenharmony_ci </dt> 7902f4aeb0Sopenharmony_ci <dd> 8002f4aeb0Sopenharmony_ci <p> 8102f4aeb0Sopenharmony_ci Specifies flags controlling wait behavior. 8202f4aeb0Sopenharmony_ci </p> 8302f4aeb0Sopenharmony_ci </dd> 8402f4aeb0Sopenharmony_ci <dt> 8502f4aeb0Sopenharmony_ci <span class="term"> 8602f4aeb0Sopenharmony_ci <em class="parameter"> 8702f4aeb0Sopenharmony_ci <code>timeout</code> 8802f4aeb0Sopenharmony_ci </em> 8902f4aeb0Sopenharmony_ci </span> 9002f4aeb0Sopenharmony_ci </dt> 9102f4aeb0Sopenharmony_ci <dd> 9202f4aeb0Sopenharmony_ci <p> 9302f4aeb0Sopenharmony_ci Specifies wait timeout interval. 9402f4aeb0Sopenharmony_ci </p> 9502f4aeb0Sopenharmony_ci </dd> 9602f4aeb0Sopenharmony_ci </dl> 9702f4aeb0Sopenharmony_ci </div> 9802f4aeb0Sopenharmony_ci </div> 9902f4aeb0Sopenharmony_ci <div class="refsect1" id="description"> 10002f4aeb0Sopenharmony_ci <h2>Description</h2> 10102f4aeb0Sopenharmony_ci <p> 10202f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> blocks the calling thread 10302f4aeb0Sopenharmony_ci until the specified sync object <em class="parameter"><code>sync</code></em> is 10402f4aeb0Sopenharmony_ci signaled, or until <em class="parameter"><code>timeout</code></em> nanoseconds 10502f4aeb0Sopenharmony_ci have passed. 10602f4aeb0Sopenharmony_ci </p> 10702f4aeb0Sopenharmony_ci <p> 10802f4aeb0Sopenharmony_ci More than one <code class="function">eglClientWaitSync</code> may be 10902f4aeb0Sopenharmony_ci outstanding on the same <em class="parameter"><code>sync</code></em> at any given 11002f4aeb0Sopenharmony_ci time. When there are multiple threads blocked on the same 11102f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em> and the sync object is signaled, all 11202f4aeb0Sopenharmony_ci such threads are released, but the order in which they are 11302f4aeb0Sopenharmony_ci released is not defined. 11402f4aeb0Sopenharmony_ci </p> 11502f4aeb0Sopenharmony_ci <p> 11602f4aeb0Sopenharmony_ci If the value of <em class="parameter"><code>timeout</code></em> is zero, then 11702f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> simply tests the current 11802f4aeb0Sopenharmony_ci status of <em class="parameter"><code>sync</code></em>. If the value of 11902f4aeb0Sopenharmony_ci <em class="parameter"><code>timeout</code></em> is the special value 12002f4aeb0Sopenharmony_ci <code class="constant">EGL_FOREVER</code>, then 12102f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> does not time out. For 12202f4aeb0Sopenharmony_ci all other values, <em class="parameter"><code>timeout</code></em> is adjusted to 12302f4aeb0Sopenharmony_ci the closest value allowed by the implementation-dependent 12402f4aeb0Sopenharmony_ci timeout accuracy, which may be substantially longer than one 12502f4aeb0Sopenharmony_ci nanosecond. 12602f4aeb0Sopenharmony_ci </p> 12702f4aeb0Sopenharmony_ci <p> 12802f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> returns one of three 12902f4aeb0Sopenharmony_ci status values describing the reason for returning. A return 13002f4aeb0Sopenharmony_ci value of <code class="constant">EGL_TIMEOUT_EXPIRED</code> indicates that 13102f4aeb0Sopenharmony_ci the specified timeout period expired before 13202f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em> was signaled, or if 13302f4aeb0Sopenharmony_ci <em class="parameter"><code>timeout</code></em> is zero, indicates that 13402f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em> is not signaled. A return value of 13502f4aeb0Sopenharmony_ci <code class="constant">EGL_CONDITION_SATISFIED</code> indicates that 13602f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em> was signaled before the timeout 13702f4aeb0Sopenharmony_ci expired, which includes the case when 13802f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em> was already signaled when 13902f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> was called. If an error 14002f4aeb0Sopenharmony_ci occurs then an error is generated and 14102f4aeb0Sopenharmony_ci <code class="constant">EGL_FALSE</code> is returned. 14202f4aeb0Sopenharmony_ci </p> 14302f4aeb0Sopenharmony_ci <p> 14402f4aeb0Sopenharmony_ci If the sync object being blocked upon will not be signaled in 14502f4aeb0Sopenharmony_ci finite time (for example, by an associated fence command issued 14602f4aeb0Sopenharmony_ci previously, but not yet flushed to the graphics pipeline), then 14702f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> may wait forever. To help 14802f4aeb0Sopenharmony_ci prevent this behavior, if the 14902f4aeb0Sopenharmony_ci <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> bit is set in 15002f4aeb0Sopenharmony_ci <em class="parameter"><code>flags</code></em>, and <em class="parameter"><code>sync</code></em> is 15102f4aeb0Sopenharmony_ci unsignaled when <code class="function">eglClientWaitSync</code> is 15202f4aeb0Sopenharmony_ci called, then the equivalent of Flush() will be performed for the 15302f4aeb0Sopenharmony_ci current API context (i.e., the context returned by 15402f4aeb0Sopenharmony_ci <code class="function">eglGetCurrentContext</code>) before blocking on 15502f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em>. If no context is current for the 15602f4aeb0Sopenharmony_ci bound API, the <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> 15702f4aeb0Sopenharmony_ci bit is ignored. 15802f4aeb0Sopenharmony_ci </p> 15902f4aeb0Sopenharmony_ci <p> 16002f4aeb0Sopenharmony_ci Note: the simple Flush behavior defined by 16102f4aeb0Sopenharmony_ci <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> will not help 16202f4aeb0Sopenharmony_ci when waiting for a fence command issued in a different context's 16302f4aeb0Sopenharmony_ci command stream. Applications which block on a fence sync object 16402f4aeb0Sopenharmony_ci must take additional steps to ensure that the context from which 16502f4aeb0Sopenharmony_ci the associated fence command was issued has flushed that command 16602f4aeb0Sopenharmony_ci to the graphics pipeline. 16702f4aeb0Sopenharmony_ci </p> 16802f4aeb0Sopenharmony_ci </div> 16902f4aeb0Sopenharmony_ci <div class="refsect1" id="errors"> 17002f4aeb0Sopenharmony_ci <h2>Errors</h2> 17102f4aeb0Sopenharmony_ci <p> 17202f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> returns 17302f4aeb0Sopenharmony_ci <code class="constant">EGL_FALSE</code> on failure. 17402f4aeb0Sopenharmony_ci </p> 17502f4aeb0Sopenharmony_ci <p> 17602f4aeb0Sopenharmony_ci If <em class="parameter"><code>sync</code></em> is not a valid sync object for 17702f4aeb0Sopenharmony_ci <em class="parameter"><code>display</code></em>, an 17802f4aeb0Sopenharmony_ci <code class="constant">EGL_BAD_PARAMETER</code> error is generated. 17902f4aeb0Sopenharmony_ci </p> 18002f4aeb0Sopenharmony_ci <p> 18102f4aeb0Sopenharmony_ci If <em class="parameter"><code>display</code></em> does not match the 18202f4aeb0Sopenharmony_ci <span class="type">EGLDisplay</span> passed to 18302f4aeb0Sopenharmony_ci <code class="function">eglCreateSync</code> when 18402f4aeb0Sopenharmony_ci <em class="parameter"><code>sync</code></em> was created, the behaviour is 18502f4aeb0Sopenharmony_ci undefined. 18602f4aeb0Sopenharmony_ci </p> 18702f4aeb0Sopenharmony_ci </div> 18802f4aeb0Sopenharmony_ci <div class="refsect1" id="notes"> 18902f4aeb0Sopenharmony_ci <h2>Notes</h2> 19002f4aeb0Sopenharmony_ci <p> 19102f4aeb0Sopenharmony_ci <code class="function">eglClientWaitSync</code> is available only if the 19202f4aeb0Sopenharmony_ci EGL version is 1.5 or greater. 19302f4aeb0Sopenharmony_ci </p> 19402f4aeb0Sopenharmony_ci </div> 19502f4aeb0Sopenharmony_ci <div class="refsect1" id="seealso"> 19602f4aeb0Sopenharmony_ci <h2>See Also</h2> 19702f4aeb0Sopenharmony_ci <p> 19802f4aeb0Sopenharmony_ci <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>, 19902f4aeb0Sopenharmony_ci <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>, 20002f4aeb0Sopenharmony_ci <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>, 20102f4aeb0Sopenharmony_ci <code class="function">glFinish</code>, 20202f4aeb0Sopenharmony_ci <code class="function">vgFinish</code> 20302f4aeb0Sopenharmony_ci </p> 20402f4aeb0Sopenharmony_ci </div> 20502f4aeb0Sopenharmony_ci <p> 20602f4aeb0Sopenharmony_ci </p> 20702f4aeb0Sopenharmony_ci <div class="refsect3" id="copyright"> 20802f4aeb0Sopenharmony_ci <img src="KhronosLogo.jpg"/> 20902f4aeb0Sopenharmony_ci <p> 21002f4aeb0Sopenharmony_ci Copyright © 2003-2014 The Khronos Group Inc. 21102f4aeb0Sopenharmony_ci Permission is hereby granted, free of charge, to any person obtaining a 21202f4aeb0Sopenharmony_ci copy of this software and/or associated documentation files (the 21302f4aeb0Sopenharmony_ci "Materials"), to deal in the Materials without restriction, including 21402f4aeb0Sopenharmony_ci without limitation the rights to use, copy, modify, merge, publish, 21502f4aeb0Sopenharmony_ci distribute, sublicense, and/or sell copies of the Materials, and to 21602f4aeb0Sopenharmony_ci permit persons to whom the Materials are furnished to do so, subject to 21702f4aeb0Sopenharmony_ci the condition that this copyright notice and permission notice shall be included 21802f4aeb0Sopenharmony_ci in all copies or substantial portions of the Materials. 21902f4aeb0Sopenharmony_ci </p> 22002f4aeb0Sopenharmony_ci </div> 22102f4aeb0Sopenharmony_ci <p> 22202f4aeb0Sopenharmony_ci</p> 22302f4aeb0Sopenharmony_ci </div> 22402f4aeb0Sopenharmony_ci <footer/> 22502f4aeb0Sopenharmony_ci </body> 22602f4aeb0Sopenharmony_ci</html> 227