Edit

kc3-lang/angle/extensions/ANGLE_robust_resource_initialization.txt

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2017-03-07 17:24:06
    Hash : e08a1d36
    Message : Plumb robust resource init extensions. This also cleans up a few minor glitches in the extension texts, and renames the EGL extension for consistency. It incidentally fixes a bug in our EGL init where we were checking the wrong client versions for KHR_create_context. It also implements a new feature for tests which allow them to defer Context creation until the test body. This allows tests to check for EGL extension available before trying to create a context with certain extensions. BUG=angleproject:1635 Change-Id: I9311991332c357e36214082b16f2a4a57bfa8865 Reviewed-on: https://chromium-review.googlesource.com/450920 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>

  • extensions/ANGLE_robust_resource_initialization.txt
  • Name
    
        ANGLE_robust_resource_initialization.txt
    
    Name Strings
    
        ANGLE_robust_resource_intialization
    
    Contributors
    
        Geoff Lang, Google
        Ken Russell, Google
    
    Contacts
    
        Shannon Woods, Google (shannonwoods 'at' google.com)
    
    Status
    
        Draft
    
    Version
    
        Version 1, January 7, 2015
    
    Number
    
        OpenGL ES Extension TBD
    
    Dependencies
    
        OpenGL ES 2.0 is required.
    
        This extension is written against the wording of the OpenGL ES
        3.1 specification.
    
        EGL_ANGLE_create_context_robust_initialization is required to request a
        context that supports this extension, and resource initialization.
    
    Overview
    
        This extension specifies the behavior for initialization of
        resources such as textures and buffers to default values. This
        initialization ensures that access will not be provided by the
        GL to previously allocated data not owned by the application.
    
    New Types
    
        None
    
    New Procedures and Functions
    
        None
    
    New Tokens
    
        Accepted by the <value> parameter of GetBooleanv, GetIntegerv,
        GetFloatv, GetDoublev, GetInteger64v, and IsEnabled:
    
            CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE    0x93A7
    
    Additions to Chapter 6 of the OpenGL ES 3.1 Specification (Buffer
    Objects)
    
        Replace the last sentence of the first paragraph of section 6.2
        "BufferData":
    
        If <data> is NULL, and robust resource initialization is enabled,
        the contents of the buffer object's data store are set to zero.
        Otherwise, the contents of the buffer object's data store are
        undefined.
    
    Additions to Chapter 8 of the OpenGL ES 3.1 Specification (Textures and
    Samplers)
    
        Replace the first two sentances of the final paragraph in section
        8.5.3 "Texture Image Structure":
    
        If the <data> argument of TexImage2D or TexImage3D is NULL, and the
        pixel unpack buffer object is zero, a two- or three-dimensional
        texel array is created with the specified <target>, <level>,
        <internalformat>, <border>, <width>, <height>, and <depth>. If
        robust resource initialization is enabled, the contents of the image
        are initialized as though a zero value were provided for each
        component of each pixel, and processed and transferred to the GL
        as described above. The components comprising this zero-filled data
        are determined by <internalformat>. If robust resource
        initialization is not enabled, the image contents are undefined, and
        no pixel processing is performed. In either case, no pixel values
        are accessed in client memory.
    
        Replace the first sentence of the fifth paragraph in section 8.8
        "Multisample Textures":
    
        Upon success, TexStorage2DMultisample deletes any existing image
        for target. If robust resource initialization is enabled, the
        contents of each texel are initialized as though a zero value were
        written to each channel of each sample; otherwise the contents of
        texels are undefined.
    
        Add to the final paragraph of section 8.17 "Immutable-Format Texture
        Images":
    
        If robust resource initialization is enabled, the contents of each
        texel is initialized as though a zero value were provided for each
        component of each pixel, and processed and transferred to the GL
        as for a call to the appropriate TexSubImage* call for <target>.
        Otherwise, the contents of texels are undefined.
    
    Additions to Chapter 9 of the OpenGL ES 3.1 Specification (Framebuffers
    and Framebuffer Objects)
    
        Replace the sentence in section 9.2.4 "Renderbuffer Objects"
        beginning "Upon success, RenderbufferStorageMultisample":
    
        Upon success, RenderbufferStorageMultisample deletes any existing
        data store for the renderbuffer image. If robust resource
        initialization is enabled, the contents of each pixel in the data
        store are initialized as though a zero value was written to each
        channel of each sample; otherwise, the contents of the data store
        are undefined.
    
    Interactions with EGL_ANGLE_create_context_robust_resource_initialization
    
        If the EGL window-system binding API is used to create a context,
        the EGL_ANGLE_create_context_robust_initialization extension is
        supported, and the attribute
        EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE is set to
        EGL_TRUE when eglCreateContext is called, the resulting context
        will perform robust resource initialization as described above in
        section <section>, and the
        CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE
        query will return GL_TRUE as described above in section 2.6.1.1.
        Otherwise queries will return GL_FALSE.
    
    Issues
    
        None
    
    Revision History
    
        Version 1, 2015/01/07 - first draft.
        Version 2, 2017/03/07 - fixed EGL naming and added IsEnabled.