Edit

kc3-lang/angle/extensions/EGL_ANGLE_x11_visual.txt

Branch :

  • Show log

    Commit

  • Author : Corentin Wallez
    Date : 2015-11-16 13:38:47
    Hash : 3d677ea6
    Message : Implement EGL_ANGLE_x11_visual Reland with a fixed tests on AMD. This extension will be used by Chrome to advertise the visual it will use for its windows. Having ANGLE use the same visual will bring several benefits: - A blit will be avoided, and the content of the window might be rendered on the system framebuffer directly. - There will be less latency when resizing windows which will make it much less likely to see a black border when resizing. BUG=522149 Change-Id: I66004b6ac45453330af7c4c810ddf2c26941be42 Reviewed-on: https://chromium-review.googlesource.com/314661 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>

  • extensions/EGL_ANGLE_x11_visual.txt
  • Name
    
        ANGLE_x11_visual
    
    Name Strings
    
        EGL_ANGLE_x11_visual
    
    Contributors
    
        Corentin Wallez, Google
        Shannon Woods, Google
        Jamie Madill, Google
        Geoff Lang, Google
    
    Contacts
    
        Corentin Wallez, Google (cwallez 'at' chromium 'dot' org)
    
    Status
    
        Draft
    
    Version
    
        Version 1, 2015-11-13
    
    Number
    
        EGL Extension XXX
    
    Extension Type
    
        EGL client extension
    
    Dependencies
    
        Requires EGL_EXT_client_extensions to query its existence without
        a display.
    
        Requires EGL_EXT_platform_base.
    
        This extension is written against the wording of version 9 of the
        EGL_EXT_platform_base specification.
    
        Written based on the wording of the EGL 1.5 Specification
        (August 7 2014).
    
    Overview
    
        This extension allows passing the X11 visual ID used by the native
        EGL surface types at display creation time. This will restrict
        EGLSurfaces to be created from native types with this visual ID,
        which may allow the created display to be more compatible and
        performant.
    
    New Types
    
        None
    
    New Procedures and Functions
    
        None
    
    New Tokens
    
        Accepted as an attribute name in the <attrib_list> argument of
        eglGetPlatformDisplayEXT:
    
            EGL_X11_VISUAL_ID_ANGLE 0x33A3
    
    Additions to the EGL Specification
    
        Modify section 3.5.1 (Creating On-Screen Rendering Surfaces), p. 34
    
        Append the following to the errors of CreateWindowSurface:
    
        "If an X11 visual was specified at display creation time using
        EGL_ANGLE_X11_VISUAL_ID that is not equal to the ID of the
        native_window's visual, an EGL_BAD_MATCH error is generated and
        EGL_NO_SURFACE is returned."
    
    New Behavior
    
        To request a display created with a X11 visual ID, the value of
        EGL_ANGLE_X11_VISUAL_ID should be set to a valid X11 visual ID. If
        present, this ID will be used during display creation to make a
        display that is more compatible and potentially more performant when
        used with EGLsurfaces created from native types with this ID. If the
        visual ID passed isn't a valid visual ID, eglGetPlatformDisplay will
        return EGL_NO_DISPLAY and generate an EGL_NOT_INITIALIZED error.
    
    Issues
    
        1) When the hint is present, should EGLsurface creation functions
           only accept native types with the hint's visual ID?
    
           RESOLVED: Yes, generate an error when the visual of the native
           surface doesn't match. This will avoid having hidden performance
           or compatibility losses when using this extension.
    
    Revision History
    
        Version 1, 2015-11-13 (Corentin Wallez)
          - Initial draft