Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/extensions/ANGLE_robust_resource_initialization.txt
1693 views
1
Name
2
3
ANGLE_robust_resource_initialization
4
5
Name Strings
6
7
GL_ANGLE_robust_resource_initialization
8
9
Contributors
10
11
Geoff Lang, Google
12
Ken Russell, Google
13
14
Contacts
15
16
Shannon Woods, Google (shannonwoods 'at' google.com)
17
18
Status
19
20
Draft
21
22
Version
23
24
Version 3, September 19, 2017
25
26
Number
27
28
OpenGL ES Extension TBD
29
30
Dependencies
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
40
Overview
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
47
New Types
48
49
None
50
51
New Procedures and Functions
52
53
None
54
55
New 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
62
Accepted by the <pname> parameter of GetTexParameteriv,
63
GetTexParameterfv, GetTexLevelParameteriv, GetTexLevelParameterfv,
64
GetRenderbufferParameteriv, GetBufferParameteriv and
65
GetBufferParameteri64v:
66
67
RESOURCE_INITIALIZED_ANGLE 0x969F
68
69
70
Additions to Chapter 6 of the OpenGL ES 3.1 Specification (Buffer
71
Objects)
72
73
Replace the last sentence of the first paragraph of section 6.2
74
"BufferData":
75
76
If <data> is NULL, and robust resource initialization is enabled,
77
the contents of the buffer object's data store are set to zero.
78
Otherwise, the contents of the buffer object's data store are
79
undefined.
80
81
Add to Table 6.2: Buffer object parameters and their values:
82
83
Name Type Initial Value Legal Values
84
---- ---- ------------- ------------
85
RESOURCE_INITIALIZED_ANGLE boolean TRUE TRUE, FALSE
86
87
Additions to Chapter 8 of the OpenGL ES 3.1 Specification (Textures and
88
Samplers)
89
90
Replace the first two sentances of the final paragraph in section
91
8.5.3 "Texture Image Structure":
92
93
If the <data> argument of TexImage2D or TexImage3D is NULL, and the
94
pixel unpack buffer object is zero, a two- or three-dimensional
95
texel array is created with the specified <target>, <level>,
96
<internalformat>, <border>, <width>, <height>, and <depth>. If
97
robust resource initialization is enabled, the contents of the image
98
are initialized as though a zero value were provided for each
99
component of each pixel, and processed and transferred to the GL
100
as described above. The components comprising this zero-filled data
101
are determined by <internalformat>. If robust resource
102
initialization is not enabled, the image contents are undefined, and
103
no pixel processing is performed. In either case, no pixel values
104
are accessed in client memory.
105
106
Replace the first sentence of the fifth paragraph in section 8.8
107
"Multisample Textures":
108
109
Upon success, TexStorage2DMultisample deletes any existing image
110
for target. If robust resource initialization is enabled, the
111
contents of each texel are initialized as though a zero value were
112
written to each channel of each sample; otherwise the contents of
113
texels are undefined.
114
115
Add to the final paragraph of section 8.17 "Immutable-Format Texture
116
Images":
117
118
If robust resource initialization is enabled, the contents of each
119
texel is initialized as though a zero value were provided for each
120
component of each pixel, and processed and transferred to the GL
121
as for a call to the appropriate TexSubImage* call for <target>.
122
Otherwise, the contents of texels are undefined.
123
124
Add to Table 8.20: Texture parameters and their values:
125
126
Name Type Legal Values
127
---- ---- ------------
128
RESOURCE_INITIALIZED_ANGLE boolean TRUE, FALSE
129
130
Add to the end of section 8.10.3 "Texture Level Parameter Queries":
131
132
Queries of pname RESOURCE_INITIALIZED_ANGLE return the initialization
133
state of the image.
134
135
Additions to Chapter 9 of the OpenGL ES 3.1 Specification (Framebuffers
136
and Framebuffer Objects)
137
138
Replace the sentence in section 9.2.4 "Renderbuffer Objects"
139
beginning "Upon success, RenderbufferStorageMultisample":
140
141
Upon success, RenderbufferStorageMultisample deletes any existing
142
data store for the renderbuffer image. If robust resource
143
initialization is enabled, the contents of each pixel in the data
144
store are initialized as though a zero value was written to each
145
channel of each sample; otherwise, the contents of the data store
146
are undefined.
147
148
Add to the end of section 9.2.6 "Renderbuffer Object Queries":
149
150
If pname is RESOURCE_INITIALIZED_ANGLE then params will contain the
151
initialization state of the renderbuffer currently bound to target.
152
153
Interactions with EGL_ANGLE_create_context_robust_resource_initialization
154
155
If the EGL window-system binding API is used to create a context,
156
the EGL_ANGLE_create_context_robust_initialization extension is
157
supported, and the attribute
158
EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE is set to
159
EGL_TRUE when eglCreateContext is called, the resulting context
160
will perform robust resource initialization as described above in
161
section <section>, and the
162
CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE
163
query will return GL_TRUE as described above in section 2.6.1.1.
164
Otherwise queries will return GL_FALSE.
165
166
New State
167
168
(add to Table 20.4: Buffer Object State)
169
170
Initial
171
Get Value Type Get Command Value Description Sec.
172
---------------------- ---- ------------------- ------ --------------------------- ------
173
RESOURCE_INITIALIZED_ANGLE B GetBufferParameteriv TRUE Buffer data has been 6.6
174
initialized
175
176
(add to Table 20.9: Textures (state per texture object))
177
178
Initial
179
Get Value Type Get Command Value Description Sec.
180
---------------------- ---- ------------------- ------ --------------------------- ------
181
RESOURCE_INITIALIZED_ANGLE B GetTexParameteriv TRUE All specified images have 8.10.2
182
been initialized
183
184
(add to Table 20.10 Textures (state per texture image))
185
186
Initial
187
Get Value Type Get Command Value Description Sec.
188
---------------------- ---- ------------------- ------ --------------------------- ------
189
RESOURCE_INITIALIZED_ANGLE B GetTexLevelParameteriv TRUE Image data has been 8.10.3
190
initialized
191
192
(add to Table 20.16: Renderbuffer (state per renderbuffer object))
193
194
Initial
195
Get Value Type Get Command Value Description Sec.
196
---------------------- ---- ------------------- ------ --------------------------- ------
197
RESOURCE_INITIALIZED_ANGLE B GetRenderbufferParameteriv TRUE Renderbuffer data has been 9.2.6
198
initialized
199
200
Issues
201
202
None
203
204
Revision History
205
206
Version 1, 2015/01/07 - first draft.
207
Version 2, 2017/03/07 - fixed EGL naming and added IsEnabled.
208
Version 3, 2017/09/19 - name cleanup.
209
Version 4, 2020/10/12 - Add RESOURCE_INITIALIZED_ANGLE queries.
210
211