• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by generate_entry_points.py using data from gl.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // entry_points_gl_4_2_autogen.cpp:
9 //   Defines the GL 4.2 entry points.
10 
11 #include "libGL/entry_points_gl_4_2_autogen.h"
12 
13 #include "libANGLE/Context.h"
14 #include "libANGLE/Context.inl.h"
15 #include "libANGLE/entry_points_utils.h"
16 #include "libANGLE/gl_enum_utils.h"
17 #include "libANGLE/validationEGL.h"
18 #include "libANGLE/validationES.h"
19 #include "libANGLE/validationES1.h"
20 #include "libANGLE/validationES2.h"
21 #include "libANGLE/validationES3.h"
22 #include "libANGLE/validationES31.h"
23 #include "libANGLE/validationES32.h"
24 #include "libANGLE/validationESEXT.h"
25 #include "libANGLE/validationGL42_autogen.h"
26 #include "libGLESv2/global_state.h"
27 
28 namespace gl
29 {
BindImageTexture(GLuint unit,GLuint texture,GLint level,GLboolean layered,GLint layer,GLenum access,GLenum format)30 void GL_APIENTRY BindImageTexture(GLuint unit,
31                                   GLuint texture,
32                                   GLint level,
33                                   GLboolean layered,
34                                   GLint layer,
35                                   GLenum access,
36                                   GLenum format)
37 {
38     Context *context = GetValidGlobalContext();
39     EVENT("glBindImageTexture",
40           "context = %d, GLuint unit = %u, GLuint texture = %u, GLint level = %d, GLboolean "
41           "layered = %s, GLint layer = %d, GLenum access = %s, GLenum format = %s",
42           CID(context), unit, texture, level, GLbooleanToString(layered), layer,
43           GLenumToString(GLenumGroup::BufferAccessARB, access),
44           GLenumToString(GLenumGroup::InternalFormat, format));
45 
46     if (context)
47     {
48         TextureID texturePacked                               = FromGL<TextureID>(texture);
49         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
50         bool isCallValid                                      = (context->skipValidation() ||
51                             ValidateBindImageTexture(context, unit, texturePacked, level, layered,
52                                                      layer, access, format));
53         if (isCallValid)
54         {
55             context->bindImageTexture(unit, texturePacked, level, layered, layer, access, format);
56         }
57         ANGLE_CAPTURE(BindImageTexture, isCallValid, context, unit, texturePacked, level, layered,
58                       layer, access, format);
59     }
60 }
61 
DrawArraysInstancedBaseInstance(GLenum mode,GLint first,GLsizei count,GLsizei instancecount,GLuint baseinstance)62 void GL_APIENTRY DrawArraysInstancedBaseInstance(GLenum mode,
63                                                  GLint first,
64                                                  GLsizei count,
65                                                  GLsizei instancecount,
66                                                  GLuint baseinstance)
67 {
68     Context *context = GetValidGlobalContext();
69     EVENT("glDrawArraysInstancedBaseInstance",
70           "context = %d, GLenum mode = %s, GLint first = %d, GLsizei count = %d, GLsizei "
71           "instancecount = %d, GLuint baseinstance = %u",
72           CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), first, count,
73           instancecount, baseinstance);
74 
75     if (context)
76     {
77         PrimitiveMode modePacked                              = FromGL<PrimitiveMode>(mode);
78         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
79         bool isCallValid                                      = (context->skipValidation() ||
80                             ValidateDrawArraysInstancedBaseInstance(
81                                 context, modePacked, first, count, instancecount, baseinstance));
82         if (isCallValid)
83         {
84             context->drawArraysInstancedBaseInstance(modePacked, first, count, instancecount,
85                                                      baseinstance);
86         }
87         ANGLE_CAPTURE(DrawArraysInstancedBaseInstance, isCallValid, context, modePacked, first,
88                       count, instancecount, baseinstance);
89     }
90 }
91 
DrawElementsInstancedBaseInstance(GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei instancecount,GLuint baseinstance)92 void GL_APIENTRY DrawElementsInstancedBaseInstance(GLenum mode,
93                                                    GLsizei count,
94                                                    GLenum type,
95                                                    const void *indices,
96                                                    GLsizei instancecount,
97                                                    GLuint baseinstance)
98 {
99     Context *context = GetValidGlobalContext();
100     EVENT("glDrawElementsInstancedBaseInstance",
101           "context = %d, GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void "
102           "*indices = 0x%016" PRIxPTR ", GLsizei instancecount = %d, GLuint baseinstance = %u",
103           CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,
104           GLenumToString(GLenumGroup::PrimitiveType, type), (uintptr_t)indices, instancecount,
105           baseinstance);
106 
107     if (context)
108     {
109         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
110         bool isCallValid                                      = (context->skipValidation() ||
111                             ValidateDrawElementsInstancedBaseInstance(
112                                 context, mode, count, type, indices, instancecount, baseinstance));
113         if (isCallValid)
114         {
115             context->drawElementsInstancedBaseInstance(mode, count, type, indices, instancecount,
116                                                        baseinstance);
117         }
118         ANGLE_CAPTURE(DrawElementsInstancedBaseInstance, isCallValid, context, mode, count, type,
119                       indices, instancecount, baseinstance);
120     }
121 }
122 
DrawElementsInstancedBaseVertexBaseInstance(GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei instancecount,GLint basevertex,GLuint baseinstance)123 void GL_APIENTRY DrawElementsInstancedBaseVertexBaseInstance(GLenum mode,
124                                                              GLsizei count,
125                                                              GLenum type,
126                                                              const void *indices,
127                                                              GLsizei instancecount,
128                                                              GLint basevertex,
129                                                              GLuint baseinstance)
130 {
131     Context *context = GetValidGlobalContext();
132     EVENT("glDrawElementsInstancedBaseVertexBaseInstance",
133           "context = %d, GLenum mode = %s, GLsizei count = %d, GLenum type = %s, const void "
134           "*indices = 0x%016" PRIxPTR
135           ", GLsizei instancecount = %d, GLint basevertex = %d, GLuint baseinstance = %u",
136           CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), count,
137           GLenumToString(GLenumGroup::PrimitiveType, type), (uintptr_t)indices, instancecount,
138           basevertex, baseinstance);
139 
140     if (context)
141     {
142         PrimitiveMode modePacked                              = FromGL<PrimitiveMode>(mode);
143         DrawElementsType typePacked                           = FromGL<DrawElementsType>(type);
144         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
145         bool isCallValid =
146             (context->skipValidation() || ValidateDrawElementsInstancedBaseVertexBaseInstance(
147                                               context, modePacked, count, typePacked, indices,
148                                               instancecount, basevertex, baseinstance));
149         if (isCallValid)
150         {
151             context->drawElementsInstancedBaseVertexBaseInstance(
152                 modePacked, count, typePacked, indices, instancecount, basevertex, baseinstance);
153         }
154         ANGLE_CAPTURE(DrawElementsInstancedBaseVertexBaseInstance, isCallValid, context, modePacked,
155                       count, typePacked, indices, instancecount, basevertex, baseinstance);
156     }
157 }
158 
DrawTransformFeedbackInstanced(GLenum mode,GLuint id,GLsizei instancecount)159 void GL_APIENTRY DrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount)
160 {
161     Context *context = GetValidGlobalContext();
162     EVENT("glDrawTransformFeedbackInstanced",
163           "context = %d, GLenum mode = %s, GLuint id = %u, GLsizei instancecount = %d",
164           CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), id, instancecount);
165 
166     if (context)
167     {
168         TransformFeedbackID idPacked                          = FromGL<TransformFeedbackID>(id);
169         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
170         bool isCallValid =
171             (context->skipValidation() ||
172              ValidateDrawTransformFeedbackInstanced(context, mode, idPacked, instancecount));
173         if (isCallValid)
174         {
175             context->drawTransformFeedbackInstanced(mode, idPacked, instancecount);
176         }
177         ANGLE_CAPTURE(DrawTransformFeedbackInstanced, isCallValid, context, mode, idPacked,
178                       instancecount);
179     }
180 }
181 
DrawTransformFeedbackStreamInstanced(GLenum mode,GLuint id,GLuint stream,GLsizei instancecount)182 void GL_APIENTRY DrawTransformFeedbackStreamInstanced(GLenum mode,
183                                                       GLuint id,
184                                                       GLuint stream,
185                                                       GLsizei instancecount)
186 {
187     Context *context = GetValidGlobalContext();
188     EVENT("glDrawTransformFeedbackStreamInstanced",
189           "context = %d, GLenum mode = %s, GLuint id = %u, GLuint stream = %u, GLsizei "
190           "instancecount = %d",
191           CID(context), GLenumToString(GLenumGroup::PrimitiveType, mode), id, stream,
192           instancecount);
193 
194     if (context)
195     {
196         TransformFeedbackID idPacked                          = FromGL<TransformFeedbackID>(id);
197         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
198         bool isCallValid =
199             (context->skipValidation() || ValidateDrawTransformFeedbackStreamInstanced(
200                                               context, mode, idPacked, stream, instancecount));
201         if (isCallValid)
202         {
203             context->drawTransformFeedbackStreamInstanced(mode, idPacked, stream, instancecount);
204         }
205         ANGLE_CAPTURE(DrawTransformFeedbackStreamInstanced, isCallValid, context, mode, idPacked,
206                       stream, instancecount);
207     }
208 }
209 
GetActiveAtomicCounterBufferiv(GLuint program,GLuint bufferIndex,GLenum pname,GLint * params)210 void GL_APIENTRY GetActiveAtomicCounterBufferiv(GLuint program,
211                                                 GLuint bufferIndex,
212                                                 GLenum pname,
213                                                 GLint *params)
214 {
215     Context *context = GetValidGlobalContext();
216     EVENT("glGetActiveAtomicCounterBufferiv",
217           "context = %d, GLuint program = %u, GLuint bufferIndex = %u, GLenum pname = %s, GLint "
218           "*params = 0x%016" PRIxPTR "",
219           CID(context), program, bufferIndex,
220           GLenumToString(GLenumGroup::AtomicCounterBufferPName, pname), (uintptr_t)params);
221 
222     if (context)
223     {
224         ShaderProgramID programPacked                         = FromGL<ShaderProgramID>(program);
225         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
226         bool isCallValid =
227             (context->skipValidation() || ValidateGetActiveAtomicCounterBufferiv(
228                                               context, programPacked, bufferIndex, pname, params));
229         if (isCallValid)
230         {
231             context->getActiveAtomicCounterBufferiv(programPacked, bufferIndex, pname, params);
232         }
233         ANGLE_CAPTURE(GetActiveAtomicCounterBufferiv, isCallValid, context, programPacked,
234                       bufferIndex, pname, params);
235     }
236 }
237 
GetInternalformativ(GLenum target,GLenum internalformat,GLenum pname,GLsizei bufSize,GLint * params)238 void GL_APIENTRY GetInternalformativ(GLenum target,
239                                      GLenum internalformat,
240                                      GLenum pname,
241                                      GLsizei bufSize,
242                                      GLint *params)
243 {
244     Context *context = GetValidGlobalContext();
245     EVENT("glGetInternalformativ",
246           "context = %d, GLenum target = %s, GLenum internalformat = %s, GLenum pname = %s, "
247           "GLsizei bufSize = %d, GLint *params = 0x%016" PRIxPTR "",
248           CID(context), GLenumToString(GLenumGroup::TextureTarget, target),
249           GLenumToString(GLenumGroup::InternalFormat, internalformat),
250           GLenumToString(GLenumGroup::InternalFormatPName, pname), bufSize, (uintptr_t)params);
251 
252     if (context)
253     {
254         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
255         bool isCallValid =
256             (context->skipValidation() ||
257              ValidateGetInternalformativ(context, target, internalformat, pname, bufSize, params));
258         if (isCallValid)
259         {
260             context->getInternalformativ(target, internalformat, pname, bufSize, params);
261         }
262         ANGLE_CAPTURE(GetInternalformativ, isCallValid, context, target, internalformat, pname,
263                       bufSize, params);
264     }
265 }
266 
MemoryBarrier(GLbitfield barriers)267 void GL_APIENTRY MemoryBarrier(GLbitfield barriers)
268 {
269     Context *context = GetValidGlobalContext();
270     EVENT("glMemoryBarrier", "context = %d, GLbitfield barriers = %s", CID(context),
271           GLbitfieldToString(GLenumGroup::MemoryBarrierMask, barriers).c_str());
272 
273     if (context)
274     {
275         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
276         bool isCallValid = (context->skipValidation() || ValidateMemoryBarrier(context, barriers));
277         if (isCallValid)
278         {
279             context->memoryBarrier(barriers);
280         }
281         ANGLE_CAPTURE(MemoryBarrier, isCallValid, context, barriers);
282     }
283 }
284 
TexStorage1D(GLenum target,GLsizei levels,GLenum internalformat,GLsizei width)285 void GL_APIENTRY TexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
286 {
287     Context *context = GetValidGlobalContext();
288     EVENT("glTexStorage1D",
289           "context = %d, GLenum target = %s, GLsizei levels = %d, GLenum internalformat = %s, "
290           "GLsizei width = %d",
291           CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels,
292           GLenumToString(GLenumGroup::InternalFormat, internalformat), width);
293 
294     if (context)
295     {
296         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
297         bool isCallValid                                      = (context->skipValidation() ||
298                             ValidateTexStorage1D(context, target, levels, internalformat, width));
299         if (isCallValid)
300         {
301             context->texStorage1D(target, levels, internalformat, width);
302         }
303         ANGLE_CAPTURE(TexStorage1D, isCallValid, context, target, levels, internalformat, width);
304     }
305 }
306 
307 void GL_APIENTRY
TexStorage2D(GLenum target,GLsizei levels,GLenum internalformat,GLsizei width,GLsizei height)308 TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
309 {
310     Context *context = GetValidGlobalContext();
311     EVENT("glTexStorage2D",
312           "context = %d, GLenum target = %s, GLsizei levels = %d, GLenum internalformat = %s, "
313           "GLsizei width = %d, GLsizei height = %d",
314           CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels,
315           GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height);
316 
317     if (context)
318     {
319         TextureType targetPacked                              = FromGL<TextureType>(target);
320         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
321         bool isCallValid =
322             (context->skipValidation() ||
323              ValidateTexStorage2D(context, targetPacked, levels, internalformat, width, height));
324         if (isCallValid)
325         {
326             context->texStorage2D(targetPacked, levels, internalformat, width, height);
327         }
328         ANGLE_CAPTURE(TexStorage2D, isCallValid, context, targetPacked, levels, internalformat,
329                       width, height);
330     }
331 }
332 
TexStorage3D(GLenum target,GLsizei levels,GLenum internalformat,GLsizei width,GLsizei height,GLsizei depth)333 void GL_APIENTRY TexStorage3D(GLenum target,
334                               GLsizei levels,
335                               GLenum internalformat,
336                               GLsizei width,
337                               GLsizei height,
338                               GLsizei depth)
339 {
340     Context *context = GetValidGlobalContext();
341     EVENT("glTexStorage3D",
342           "context = %d, GLenum target = %s, GLsizei levels = %d, GLenum internalformat = %s, "
343           "GLsizei width = %d, GLsizei height = %d, GLsizei depth = %d",
344           CID(context), GLenumToString(GLenumGroup::TextureTarget, target), levels,
345           GLenumToString(GLenumGroup::InternalFormat, internalformat), width, height, depth);
346 
347     if (context)
348     {
349         TextureType targetPacked                              = FromGL<TextureType>(target);
350         std::unique_lock<angle::GlobalMutex> shareContextLock = GetShareGroupLock(context);
351         bool isCallValid                                      = (context->skipValidation() ||
352                             ValidateTexStorage3D(context, targetPacked, levels, internalformat,
353                                                  width, height, depth));
354         if (isCallValid)
355         {
356             context->texStorage3D(targetPacked, levels, internalformat, width, height, depth);
357         }
358         ANGLE_CAPTURE(TexStorage3D, isCallValid, context, targetPacked, levels, internalformat,
359                       width, height, depth);
360     }
361 }
362 }  // namespace gl
363