aboutsummaryrefslogtreecommitdiff
path: root/extensions/EGL_ANGLE_display_semaphore_share_group.txt
blob: 40613718b44c7337afc60576fbf44395747ff509 (plain)
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
Name

    ANGLE_display_semaphore_share_group

Name Strings

    EGL_ANGLE_display_semaphore_share_group

Contributors

    Peng Huang, Google

Contacts

    Peng Huang, Google (penghuang 'at' google.com)

Status

    Draft

Version

    Version 1, July 27, 2020

Number

    EGL Extension TBD

Dependencies

    This extension is written against the wording of the EGL 1.5 specification.

Overview

    This extension allows for the creation of OpenGL ES contexts that share
    semaphore objects with other contexts owned by the same display. This method
    of sharing semaphores can be used in conjuction with regular share groups.

New Types

    None

New Procedures and Functions

    None

New Tokens

    Accepted as an attribute name in the <*attrib_list> argument to
    eglCreateContext:

        EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE    0x348D

Additions to the EGL 1.5 Specification

    Add a new section entitled "OpenGL ES Global Semaphore Share Groups"
    to section 3.7.1:

    "If the attribute EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE is set to EGL_TRUE,
    a context that shares semaphores with other contexts owned by the same
    display and created with EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE set to
    EGL_TRUE will be created. If the share_context parameter to
    eglCreateContext is not NULL, all contexts within the share group must have
    been created with the same value of EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE.
    The default value of EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE is EGL_FALSE."

Issues

    (1) What happens to the shared semaphores when a context in the global share
        group is destroyed?

    RESOLOVED: When the last context in the global semaphore share group is
    destroyed, all semaphores in the global semaphore share group are released. If
    a new context is created in the global semaphore share group, no semaphores
    will exist.

    This mirrors how regular share groups work, releasing all objects when the
    last context is destroyed.

Revision History

    Version 1, 2020/07/27 - first draft.