Hash :
f41a7151
        
        Author :
  
        
        Date :
2016-09-19T15:11:17
        
      
Add an extension to disable resource generation on bind. BUG=angleproject:1518 Change-Id: I662f7b07da5c97831496f2617b0adadf9858bdc9 Reviewed-on: https://chromium-review.googlesource.com/386799 Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Geoff Lang <geofflang@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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
Name
    CHROMIUM_bind_generates_resource
Name Strings
    GL_CHROMIUM_bind_generates_resource
Contributors
    Geoff Lang
Contact
    Geoff Lang (geofflang 'at' google.com)
Notice
    Copyright (c) 2016 The Khronos Group Inc. Copyright terms at
        http://www.khronos.org/registry/speccopyright.html
Status
    Draft
Version
    Version 1, September 19, 2016
Number
    OpenGL ES Extension #??
Dependencies
    Requires OpenGL ES 2.0
    Written against the OpenGL ES 2.0 specification.
Overview
    This extension allows the user to control the behaviour when binding an
    object that has not been generated.  This functionality is useful to
    notify the user of potential use-after-free errors or support other APIs
    such as WebGL on top of an OpenGL ES context.
New Procedures and Functions
    None
New Tokens
    Accepted by the <cap> parameter to IsEnabled and the <pname> parameter to
    GetBooleanv, GetIntegerv, GetFloatv, and GetInteger64v:
    BIND_GENERATES_RESOURCE_CHROMIUM            0x9244
Additions to the OpenGL ES Specification
    Add to the end of Section 2.9 "Buffer Objects":
    If BIND_GENERATES_RESOURCE_CHROMIUM is false, BindBuffer fails and an
    INVALID_OPERATION error is generated if buffer is not zero or a name
    returned from a previous call to GenBuffers, or if such a name has since
    been deleted with DeleteBuffers.
    Add to the end of Section 3.7.13 "Texture Objects":
    If BIND_GENERATES_RESOURCE_CHROMIUM is false, BindTexture fails and an
    INVALID_OPERATION error is generated if texture is not zero or a name
    returned from a previous call to GenTextures, or if such a name has since
    been deleted with DeleteTextures.
    Add to the end of Section 4.4.1 "Binding and Managing Framebuffer Objects":
    If BIND_GENERATES_RESOURCE_CHROMIUM is false, BindFramebuffer fails and an
    INVALID_OPERATION error is generated if framebuffer is not zero or a name
    returned from a previous call to GenFramebuffers, or if such a name has
    since been deleted with DeleteFramebuffers.
    Add to the end of Section 4.4.3 "Renderbuffer Objects":
    If BIND_GENERATES_RESOURCE_CHROMIUM is false, BindRenderbuffer fails and an
    INVALID_OPERATION error is generated if renderbuffer is not zero or a name
    returned from a previous call to GenRenderbuffers, or if such a name has
    since been deleted with DeleteRenderbuffers.
New State
    Modify Table 6.22, Miscellaneous
    Add:
                                                      Initial
    Get Value                        Type Get Command Value   Description
    -----------------------          ---- ----------- ------- --------------
    BIND_GENERATES_RESOURCE_CHROMIUM B    IsEnabled   TRUE    Bind generates
                                                              new resources
Conformance Tests
    TBD
Issues
    (1) Should the BIND_GENERATES_RESOURCE_CHROMIUM state be enabled at context
        creation time or dynamically through the Enable and Disable functions?
    RESOLOVED: BIND_GENERATES_RESOURCE_CHROMIUM is initialized by a context
    creation attribute and cannot be modified.  One of the major use cases of
    this extension is to back WebGL contexts and the end user should not be
    allowed to modify this state.
Revision History
    Rev.    Date         Author     Changes
    ----  -------------  ---------  ----------------------------------------
      1   Sept 19, 2016  geofflang  Initial version