<commit_before>Name

    ANGLE_external_objects_fuchsia

Name Strings

    GL_ANGLE_memory_object_fuchsia
    GL_ANGLE_semaphore_fuchsia

Contributors

    <NAME>, Google

Contact

    <NAME>, Google (spang 'at' google.com)

Status

    Draft

Version

    Last Modified Date: Feb 19, 2020
    Revision: 1

Number

    TBD

Dependencies

    Written against the OpenGL 4.5 and OpenGL ES 3.2 specifications

    GL_ANGLE_memory_object_fuchsia requires GL_EXT_memory_object

    GL_ANGLE_semaphore_fuchsia requires GL_EXT_semaphore

Overview

    Building upon the OpenGL memory object and semaphore framework
    defined in EXT_external_objects, this extension enables an OpenGL
    application to import a memory object or semaphore from Zircon
    external handles.

New Procedures and Functions

    If the GL_ANGLE_memory_object_fuchsia string is reported, the following
    commands are added:

    void ImportMemoryZirconHandleANGLE(uint memory,
                                       uint64 size,
                                       enum handleType,
                                       uint handle);

    If the GL_ANGLE_semaphore_fuchsia string is reported, the following commands
    are added:

    void ImportSemaphoreZirconHandleANGLE(uint semaphore,
                                          enum handleType,
                                          uint handle);


New Tokens

    If the GL_ANGLE_memory_object_fuchsia string is reported, the following
    tokens are added:

    Accepted by the <handleType> parameter of ImportMemoryZirconHandleANGLE().

        HANDLE_TYPE_ZIRCON_VMO_ANGLE               0x93AE

    If the GL_ANGLE_semaphore_fuchsia string is reported, the following
    tokens are added:

    Accepted by the <handleType> parameter of ImportSemaphoreZirconHandleANGLE().

        HANDLE_TYPE_ZIRCON_EVENT_ANGLE             0x93AF

Additions to Chapter 4 of the OpenGL 4.5 Specification (Event Model)

    Add the following entry to table 4.2 "Commands for importing
    external semaphore handles."

        | Handle Type                    | Import command                   |
        +--------------------------------+----------------------------------+
        | HANDLE_TYPE_ZIRCON_EVENT_ANGLE | ImportSemaphoreZirconHandleANGLE |
        +--------------------------------+----------------------------------+

    Replace the paragraph in section 4.2.1 beginning "External handles
    are often defined..." with the following

        The command

            ImportSemaphoreZirconHandleANGLE(uint semaphore,
                                             enum handleType,
                                             uint handle);

        imports a semaphore from the zircon handle <handle>.  What type of
        handle <handle> refers to is determined by <handleType>.  A successful
        import operation transfers ownership of <handle> to the GL
        implementation, and performing any operation on <handle> in the
        application after an import results in undefined behavior.

Additions to Chapter 6 of the OpenGL 4.5 Specification (Memory Objects)

    Add the following entry to table 6.2 "Commands for importing
    external memory handles."

        | Handle Type                  | Import command                |
        +------------------------------+-------------------------------+
        | HANDLE_TYPE_ZIRCON_VMO_ANGLE | ImportMemoryZirconHandleANGLE |
        +------------------------------+-------------------------------+

    Replace the paragraph in section 6.1 beginning "External handles are
    often defined..." with the following

        The command

            void ImportMemoryZirconHandleANGLE(uint memory,
                                               uint64 size,
                                               enum handleType,
                                               uint handle);

        imports a memory object of length <size> from the handle
        <handle>.  What type of object <handle> refers to is determined by
        <handleType>.  A successful import operation transfers ownership
        of <handle> to the GL implementation, and performing any operation on
        <handle> in the application after an import results in undefined
        behavior.

Revision History

    Revision 1, 2019-02-19 (<NAME>)
        - Initial draft based closely on EXT_external_objects_fd.
<commit_msg>Fix wrong date in ANGLE_external_objects_fuchsia revision history<commit_after>Name

    ANGLE_external_objects_fuchsia

Name Strings

    GL_ANGLE_memory_object_fuchsia
    GL_ANGLE_semaphore_fuchsia

Contributors

    <NAME>, Google

Contact

    <NAME>, Google (spang 'at' google.com)

Status

    Draft

Version

    Last Modified Date: Feb 19, 2020
    Revision: 1

Number

    TBD

Dependencies

    Written against the OpenGL 4.5 and OpenGL ES 3.2 specifications

    GL_ANGLE_memory_object_fuchsia requires GL_EXT_memory_object

    GL_ANGLE_semaphore_fuchsia requires GL_EXT_semaphore

Overview

    Building upon the OpenGL memory object and semaphore framework
    defined in EXT_external_objects, this extension enables an OpenGL
    application to import a memory object or semaphore from Zircon
    external handles.

New Procedures and Functions

    If the GL_ANGLE_memory_object_fuchsia string is reported, the following
    commands are added:

    void ImportMemoryZirconHandleANGLE(uint memory,
                                       uint64 size,
                                       enum handleType,
                                       uint handle);

    If the GL_ANGLE_semaphore_fuchsia string is reported, the following commands
    are added:

    void ImportSemaphoreZirconHandleANGLE(uint semaphore,
                                          enum handleType,
                                          uint handle);


New Tokens

    If the GL_ANGLE_memory_object_fuchsia string is reported, the following
    tokens are added:

    Accepted by the <handleType> parameter of ImportMemoryZirconHandleANGLE().

        HANDLE_TYPE_ZIRCON_VMO_ANGLE               0x93AE

    If the GL_ANGLE_semaphore_fuchsia string is reported, the following
    tokens are added:

    Accepted by the <handleType> parameter of ImportSemaphoreZirconHandleANGLE().

        HANDLE_TYPE_ZIRCON_EVENT_ANGLE             0x93AF

Additions to Chapter 4 of the OpenGL 4.5 Specification (Event Model)

    Add the following entry to table 4.2 "Commands for importing
    external semaphore handles."

        | Handle Type                    | Import command                   |
        +--------------------------------+----------------------------------+
        | HANDLE_TYPE_ZIRCON_EVENT_ANGLE | ImportSemaphoreZirconHandleANGLE |
        +--------------------------------+----------------------------------+

    Replace the paragraph in section 4.2.1 beginning "External handles
    are often defined..." with the following

        The command

            ImportSemaphoreZirconHandleANGLE(uint semaphore,
                                             enum handleType,
                                             uint handle);

        imports a semaphore from the zircon handle <handle>.  What type of
        handle <handle> refers to is determined by <handleType>.  A successful
        import operation transfers ownership of <handle> to the GL
        implementation, and performing any operation on <handle> in the
        application after an import results in undefined behavior.

Additions to Chapter 6 of the OpenGL 4.5 Specification (Memory Objects)

    Add the following entry to table 6.2 "Commands for importing
    external memory handles."

        | Handle Type                  | Import command                |
        +------------------------------+-------------------------------+
        | HANDLE_TYPE_ZIRCON_VMO_ANGLE | ImportMemoryZirconHandleANGLE |
        +------------------------------+-------------------------------+

    Replace the paragraph in section 6.1 beginning "External handles are
    often defined..." with the following

        The command

            void ImportMemoryZirconHandleANGLE(uint memory,
                                               uint64 size,
                                               enum handleType,
                                               uint handle);

        imports a memory object of length <size> from the handle
        <handle>.  What type of object <handle> refers to is determined by
        <handleType>.  A successful import operation transfers ownership
        of <handle> to the GL implementation, and performing any operation on
        <handle> in the application after an import results in undefined
        behavior.

Revision History

    Revision 1, 2020-02-19 (<NAME>)
        - Initial draft based closely on EXT_external_objects_fd.

{'fraction_non_alphanumeric': 0.09160823343135037, 'fraction_numerical': 0.010178692603483374, 'mean_word_length': 1.7200861273454322, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 38, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1450883', 'n_tokens_mistral': 2224, 'n_tokens_neox': 1979, 'n_words': 760}