Hash :
4cf2501c
        
        Author :
  
        
        Date :
2020-07-27T13:19:27
        
      
Add extension EGL_ANGLE_display_semaphore_share_group For sharing semaphores globally. Bug: angleproject:4877 Change-Id: I472e0902fd04ca8350d74e6c0ae6925ee930ccf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2319370 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
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.