• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    ANGLE_robust_resource_initialization
4
5Name Strings
6
7    GL_ANGLE_robust_resource_intialization
8
9Contributors
10
11    Geoff Lang, Google
12    Ken Russell, Google
13
14Contacts
15
16    Shannon Woods, Google (shannonwoods 'at' google.com)
17
18Status
19
20    Draft
21
22Version
23
24    Version 3, September 19, 2017
25
26Number
27
28    OpenGL ES Extension TBD
29
30Dependencies
31
32    OpenGL ES 2.0 is required.
33
34    This extension is written against the wording of the OpenGL ES
35    3.1 specification.
36
37    EGL_ANGLE_robust_initialization is required to request a
38    context that supports this extension, and resource initialization.
39
40Overview
41
42    This extension specifies the behavior for initialization of
43    resources such as textures and buffers to default values. This
44    initialization ensures that access will not be provided by the
45    GL to previously allocated data not owned by the application.
46
47New Types
48
49    None
50
51New Procedures and Functions
52
53    None
54
55New Tokens
56
57    Accepted by the <value> parameter of GetBooleanv, GetIntegerv,
58    GetFloatv, GetDoublev, GetInteger64v, and IsEnabled:
59
60        ROBUST_RESOURCE_INITIALIZATION_ANGLE    0x93A7
61
62Additions to Chapter 6 of the OpenGL ES 3.1 Specification (Buffer
63Objects)
64
65    Replace the last sentence of the first paragraph of section 6.2
66    "BufferData":
67
68    If <data> is NULL, and robust resource initialization is enabled,
69    the contents of the buffer object's data store are set to zero.
70    Otherwise, the contents of the buffer object's data store are
71    undefined.
72
73Additions to Chapter 8 of the OpenGL ES 3.1 Specification (Textures and
74Samplers)
75
76    Replace the first two sentances of the final paragraph in section
77    8.5.3 "Texture Image Structure":
78
79    If the <data> argument of TexImage2D or TexImage3D is NULL, and the
80    pixel unpack buffer object is zero, a two- or three-dimensional
81    texel array is created with the specified <target>, <level>,
82    <internalformat>, <border>, <width>, <height>, and <depth>. If
83    robust resource initialization is enabled, the contents of the image
84    are initialized as though a zero value were provided for each
85    component of each pixel, and processed and transferred to the GL
86    as described above. The components comprising this zero-filled data
87    are determined by <internalformat>. If robust resource
88    initialization is not enabled, the image contents are undefined, and
89    no pixel processing is performed. In either case, no pixel values
90    are accessed in client memory.
91
92    Replace the first sentence of the fifth paragraph in section 8.8
93    "Multisample Textures":
94
95    Upon success, TexStorage2DMultisample deletes any existing image
96    for target. If robust resource initialization is enabled, the
97    contents of each texel are initialized as though a zero value were
98    written to each channel of each sample; otherwise the contents of
99    texels are undefined.
100
101    Add to the final paragraph of section 8.17 "Immutable-Format Texture
102    Images":
103
104    If robust resource initialization is enabled, the contents of each
105    texel is initialized as though a zero value were provided for each
106    component of each pixel, and processed and transferred to the GL
107    as for a call to the appropriate TexSubImage* call for <target>.
108    Otherwise, the contents of texels are undefined.
109
110Additions to Chapter 9 of the OpenGL ES 3.1 Specification (Framebuffers
111and Framebuffer Objects)
112
113    Replace the sentence in section 9.2.4 "Renderbuffer Objects"
114    beginning "Upon success, RenderbufferStorageMultisample":
115
116    Upon success, RenderbufferStorageMultisample deletes any existing
117    data store for the renderbuffer image. If robust resource
118    initialization is enabled, the contents of each pixel in the data
119    store are initialized as though a zero value was written to each
120    channel of each sample; otherwise, the contents of the data store
121    are undefined.
122
123Interactions with EGL_ANGLE_create_context_robust_resource_initialization
124
125    If the EGL window-system binding API is used to create a context,
126    the EGL_ANGLE_create_context_robust_initialization extension is
127    supported, and the attribute
128    EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE is set to
129    EGL_TRUE when eglCreateContext is called, the resulting context
130    will perform robust resource initialization as described above in
131    section <section>, and the
132    CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE
133    query will return GL_TRUE as described above in section 2.6.1.1.
134    Otherwise queries will return GL_FALSE.
135
136Issues
137
138    None
139
140Revision History
141
142    Version 1, 2015/01/07 - first draft.
143    Version 2, 2017/03/07 - fixed EGL naming and added IsEnabled.
144    Version 3, 2017/09/19 - name cleanup.
145