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