File: ANGLE_external_objects_fuchsia.txt

package info (click to toggle)
webkit2gtk 2.50.1-1~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 445,776 kB
  • sloc: cpp: 3,798,329; javascript: 197,914; ansic: 161,337; python: 49,141; asm: 21,987; ruby: 18,540; perl: 16,723; xml: 4,623; yacc: 2,360; sh: 2,246; java: 2,019; lex: 1,327; pascal: 366; makefile: 289
file content (135 lines) | stat: -rw-r--r-- 4,389 bytes parent folder | download | duplicates (35)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
Name

    ANGLE_external_objects_fuchsia

Name Strings

    GL_ANGLE_memory_object_fuchsia
    GL_ANGLE_semaphore_fuchsia

Contributors

    Michael Spang, Google

Contact

    Michael Spang, 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 (Michael Spang)
        - Initial draft based closely on EXT_external_objects_fd.