xref: /aosp_15_r20/external/angle/extensions/EGL_ANGLE_x11_visual.txt (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1Name
2
3    ANGLE_x11_visual
4
5Name Strings
6
7    EGL_ANGLE_x11_visual
8
9Contributors
10
11    Corentin Wallez, Google
12    Shannon Woods, Google
13    Jamie Madill, Google
14    Geoff Lang, Google
15
16Contacts
17
18    Corentin Wallez, Google (cwallez 'at' chromium 'dot' org)
19
20Status
21
22    Draft
23
24Version
25
26    Version 1, 2015-11-13
27
28Number
29
30    EGL Extension XXX
31
32Extension Type
33
34    EGL client extension
35
36Dependencies
37
38    Requires EGL_EXT_client_extensions to query its existence without
39    a display.
40
41    Requires EGL_EXT_platform_base.
42
43    This extension is written against the wording of version 9 of the
44    EGL_EXT_platform_base specification.
45
46    Written based on the wording of the EGL 1.5 Specification
47    (August 7 2014).
48
49Overview
50
51    This extension allows passing the X11 visual ID used by the native
52    EGL surface types at display creation time. This will restrict
53    EGLSurfaces to be created from native types with this visual ID,
54    which may allow the created display to be more compatible and
55    performant.
56
57New Types
58
59    None
60
61New Procedures and Functions
62
63    None
64
65New Tokens
66
67    Accepted as an attribute name in the <attrib_list> argument of
68    eglGetPlatformDisplayEXT:
69
70        EGL_X11_VISUAL_ID_ANGLE 0x33A3
71
72Additions to the EGL Specification
73
74    Modify section 3.5.1 (Creating On-Screen Rendering Surfaces), p. 34
75
76    Append the following to the errors of CreateWindowSurface:
77
78    "If an X11 visual was specified at display creation time using
79    EGL_ANGLE_X11_VISUAL_ID that is not equal to the ID of the
80    native_window's visual, an EGL_BAD_MATCH error is generated and
81    EGL_NO_SURFACE is returned."
82
83New Behavior
84
85    To request a display created with a X11 visual ID, the value of
86    EGL_ANGLE_X11_VISUAL_ID should be set to a valid X11 visual ID. If
87    present, this ID will be used during display creation to make a
88    display that is more compatible and potentially more performant when
89    used with EGLsurfaces created from native types with this ID. If the
90    visual ID passed isn't a valid visual ID, eglGetPlatformDisplay will
91    return EGL_NO_DISPLAY and generate an EGL_NOT_INITIALIZED error.
92
93Issues
94
95    1) When the hint is present, should EGLsurface creation functions
96       only accept native types with the hint's visual ID?
97
98       RESOLVED: Yes, generate an error when the visual of the native
99       surface doesn't match. This will avoid having hidden performance
100       or compatibility losses when using this extension.
101
102Revision History
103
104    Version 1, 2015-11-13 (Corentin Wallez)
105      - Initial draft
106
107