<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateSync">
    <info>
         <copyright>
             <year>2018</year>
             <holder>The Khronos Group Inc.</holder>
         </copyright>
    </info>
    <refmeta>
        <refentrytitle>eglCreateSync</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>eglCreateSync</refname>
        <refpurpose>
            create a new <acronym>EGL</acronym> sync object
        </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>EGLSync <function>eglCreateSync</function></funcdef>
                <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
                <paramdef>EGLEnum <parameter>type</parameter></paramdef>
                <paramdef>EGLAttrib const * <parameter>attrib_list</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 xml:id="parameters"><title>Parameters</title>
        <variablelist>
            <varlistentry>
                <term><parameter>display</parameter></term>
                <listitem><para>
                    Specifies the <acronym>EGL</acronym> display connection.
                </para></listitem>
            </varlistentry>
            <varlistentry>
                <term><parameter>type</parameter></term>
                <listitem><para>
                    Specifies the type of sync object to create.
                </para></listitem>
            </varlistentry>
            <varlistentry>
                <term><parameter>attrib_list</parameter></term>
                <listitem><para>
                    Specifies attributes and attribute values for the sync
                    object being created.
                </para></listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 xml:id="description"><title>Description</title>
        <para>
            <firstterm>sync objects</firstterm> are provided to enable
            synchronization of client API operations between threads and/or
            between API contexts. Sync objects may be tested or waited upon
            by application threads.
        </para>
        <para>
            Sync objects have a status with two possible states:
            <firstterm>signaled</firstterm> and
            <firstterm>unsignaled</firstterm>. Initially, sync objects are
            unsignaled. EGL may be asked to wait for a sync object to become
            signaled, or a sync object's status may be queried.
        </para>
        <para>
            Depending on the type of a sync object, its status may be
            changed either by an external event, or by explicitly signaling
            and unsignaling the sync.
        </para>
        <para>
            <function>eglCreateSync</function> creates a sync object of the specified
            <parameter>type</parameter> associated with the specified display
            <parameter>display</parameter>, and returns a handle to the new object.
            <parameter>attrib_list</parameter> is an attribute-value list specifying
            other attributes of the sync object, terminated by an attribute entry
            <constant>EGL_NONE</constant>. Attributes not specified in the list will be
            assigned their default values.
        </para>
        <para>
            Once the <firstterm>condition</firstterm> of the sync object is satisfied,
            the sync is signaled, causing any <function>eglClientWaitSync</function> or
            <function>eglWaitSync</function> commands blocking on
            <parameter>sync</parameter> to unblock.
        </para>
    </refsect1>
    <refsect1 xml:id="fencesync"><title>Creating Fence Sync Objects</title>
        <para>
            If <parameter>type</parameter> is
            <constant>EGL_SYNC_FENCE</constant>, a fence sync object is
            created. In this case <parameter>attrib_list</parameter> must be
            <constant>NULL</constant> or empty (containing only
            <constant>EGL_NONE</constant>). Attributes of the fence sync
            object, and their initial values, are:
        </para>
        <variablelist>
            <varlistentry>
                <term><constant>EGL_SYNC_TYPE</constant></term>
                <listitem>
                    <para>
                        <constant>EGL_SYNC_FENCE</constant>
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>EGL_SYNC_STATUS</constant></term>
                <listitem>
                    <para>
                        <constant>EGL_UNSIGNALED</constant>
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>EGL_SYNC_CONDITION</constant></term>
                <listitem>
                    <para>
                        <constant>EGL_SYNC_PRIOR_COMMANDS_COMPLETE</constant>
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
        <para>
            When a fence sync object is created, <function>eglCreateSync</function> also inserts a
            fence command into the command stream of the bound client API's current
            context (i.e., the context returned by <function>eglGetCurrentContext</function>), and
            associates it with the newly created sync object.
        </para>
        <para>
            The only condition supported for fence sync objects is
            <constant>EGL_SYNC_PRIOR_COMMANDS_COMPLETE</constant>, which is satisfied by completion of
            the fence command corresponding to the sync object, and all preceding
            commands in the associated client API context's command stream. The sync
            object will not be signaled until all effects from these commands on the
            client API's internal and framebuffer state are fully realized. No other
            state is affected by execution of the fence command.
        </para>
        <para>
            Creation of fence sync objects requires support from the bound
            client API, and will not succeed unless the client API satisfies
            one of the following properties. Note that
            <function>eglWaitSync</function> also requires satisfying these
            conditions.
        </para>
        <para>
            <itemizedlist>
            <listitem>
                <para>
                    client API is OpenGL, and either the OpenGL version is
                    3.2 or greater, or the <constant>GL_ARB_sync</constant>
                    extension is supported.
                </para>
            </listitem>
            <listitem>
                <para>
                    client API is OpenGL ES, and either the OpenGL ES
                    version is 3.0 or greater, or the
                    <constant>GL_OES_EGL_sync</constant> extension is
                    supported.
                </para>
            </listitem>
            <listitem>
                <para>
                    client API is OpenVG, and the
                    <constant>VG_KHR_EGL_sync</constant> extension is
                    supported.
                </para>
            </listitem>
            </itemizedlist>
        </para>
    </refsect1>
    <refsect1 xml:id="openclsync"><title>Creating OpenCL Event Sync Objects</title>
        <para>
            If <parameter>type</parameter> is
            <constant>EGL_SYNC_CL_EVENT</constant>, an OpenCL event sync
            object is created. In this case
            <parameter>attrib_list</parameter> must contain the attribute
            <constant>EGL_CL_EVENT_HANDLE</constant>, set to a valid OpenCL
            event handle returned by a call to
            <function>clEnqueueReleaseGLObjects</function> or
            <function>clEnqueueReleaseEGLObjects</function>; other types of
            OpenCL event handles are not supported. Note that
            <constant>EGL_CL_EVENT_HANDLE</constant> is not a queriable
            property of a sync object. Attributes of the OpenCL event sync
            object, and their initial values, are:
        </para>
        <variablelist>
            <varlistentry>
                <term><constant>EGL_SYNC_TYPE</constant></term>
                <listitem>
                    <para>
                        <constant>EGL_SYNC_CL_EVENT</constant>
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>EGL_SYNC_STATUS</constant></term>
                <listitem>
                    <para>
                        Depends on status of <parameter>event</parameter>
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>EGL_SYNC_CONDITION</constant></term>
                <listitem>
                    <para>
                        <constant>EGL_SYNC_CL_EVENT_COMPLETE</constant>
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
        <para>
            The status of such a sync object depends on
            <parameter>event</parameter>. When the status of
            <parameter>event</parameter> is <constant>CL_QUEUED</constant>,
            <constant>CL_SUBMITTED</constant>, or
            <constant>CL_RUNNING</constant>, the status of the linked sync
            object will be <constant>EGL_UNSIGNALED</constant>. When the
            status of <parameter>event</parameter> changes to
            <constant>CL_COMPLETE</constant>, the status of the linked sync
            object will become <constant>EGL_SIGNALED</constant>.
        </para>
        <para>
            The only condition supported for OpenCL event sync objects is
            <constant>EGL_SYNC_CL_EVENT_COMPLETE</constant>, which is
            satisfied when the status of the OpenCL event associated with
            the sync object changes to <constant>CL_COMPLETE</constant>.
        </para>
        <para>
            Creating a linked sync object places a reference on the linked
            OpenCL event object. When the sync object is deleted, the
            reference will be removed from the event object.
        </para>
        <para>
            However, implementations are not required to validate the OpenCL
            event, and passing an invalid event handle in
            <parameter>attrib_list</parameter> may result in undefined
            behavior up to and including program termination.
        </para>
    </refsect1>
    <refsect1 xml:id="notes"><title>Notes</title>
        <para>
            <function>eglCreateSync</function> is supported only if the EGL
            version is 1.5 or greater.
        </para>
    </refsect1>
    <refsect1 xml:id="errors"><title>Errors</title>
        <para>
            <function>eglCreateSync</function> returns
            <constant>EGL_NO_SYNC</constant> on failure.
        </para>
        <para>
            If <parameter>display</parameter> is not the name of a valid,
            initialized <type>EGLDisplay</type>, an
            <constant>EGL_BAD_DISPLAY</constant> error is generated.
        </para>
        <para>
            If <parameter>attrib_list</parameter> contains an attribute name
            not defined for the type of sync object being created, an
            <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
        </para>
        <para>
            If <parameter>type</parameter> is not a supported type of sync
            object, an <constant>EGL_BAD_PARAMETER</constant> error is
            generated.
        </para>
        <para>
            If <parameter>type</parameter> is
            <constant>EGL_SYNC_FENCE</constant> and no context is current
            for the bound API (i.e.,
            <function>eglGetCurrentContext</function> returns
            <constant>EGL_NO_CONTEXT</constant>), an
            <constant>EGL_BAD_MATCH</constant> error is generated.
        </para>
        <para>
            If <parameter>type</parameter> is
            <constant>EGL_SYNC_FENCE</constant> and
            <parameter>display</parameter> does not match the
            <type>EGLDisplay</type> of the currently bound context for the
            currently bound client API (the <type>EGLDisplay</type> returned
            by <function>eglGetCurrentDisplay</function>), an
            <constant>EGL_BAD_MATCH</constant> error is generated.
        </para>
        <para>
            If <parameter>type</parameter> is
            <constant>EGL_SYNC_FENCE</constant> and the current context for
            the currently bound client API does not support fence commands,
            an <constant>EGL_BAD_MATCH</constant> error is generated.
        </para>
        <para>
            If <parameter>type</parameter> is
            <constant>EGL_SYNC_CL_EVENT</constant> and
            <constant>EGL_CL_EVENT_HANDLE</constant> is not specified in
            <parameter>attrib_list</parameter>, or its attribute value is
            not a valid OpenCL event handle as described above, then an
            <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
        </para>
    </refsect1>
    <refsect1 xml:id="seealso"><title>See Also</title>
        <para>
            <function>clEnqueueReleaseGLObjects</function>,
            <function>clEnqueueReleaseEGLObjects</function>,
            <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
</refentry>
