Branch
Hash :
35b92525
Author :
Date :
2025-08-13T15:27:32
Remove lock from GenVertexArrays/IsVertexArray VertexArrays are per context anyway and is thread safe, so there is no need for shared lock. This CL moves mVertexArrayMap from Context to PrivateState so that it won't be accessed by other APIs. Bug: b/433331119 Change-Id: I466a79762e887dbec78b796b52028420837cff59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6977163 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Context_gles_3_0_autogen.h: Creates a macro for interfaces in Context.
#ifndef ANGLE_CONTEXT_GLES_3_0_AUTOGEN_H_
#define ANGLE_CONTEXT_GLES_3_0_AUTOGEN_H_
#define ANGLE_GLES_3_0_CONTEXT_API \
void beginQuery(QueryType targetPacked, QueryID idPacked); \
void beginTransformFeedback(PrimitiveMode primitiveModePacked); \
void bindBufferBase(BufferBinding targetPacked, GLuint index, BufferID bufferPacked); \
void bindBufferRange(BufferBinding targetPacked, GLuint index, BufferID bufferPacked, \
GLintptr offset, GLsizeiptr size); \
void bindSampler(GLuint unit, SamplerID samplerPacked); \
void bindTransformFeedback(GLenum target, TransformFeedbackID idPacked); \
void bindVertexArray(VertexArrayID arrayPacked); \
void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, \
GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); \
void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); \
void clearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value); \
void clearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value); \
void clearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value); \
GLenum clientWaitSync(SyncID syncPacked, GLbitfield flags, GLuint64 timeout); \
void compressedTexImage3D(TextureTarget targetPacked, GLint level, GLenum internalformat, \
GLsizei width, GLsizei height, GLsizei depth, GLint border, \
GLsizei imageSize, const void *data); \
void compressedTexSubImage3D(TextureTarget targetPacked, GLint level, GLint xoffset, \
GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, \
GLsizei depth, GLenum format, GLsizei imageSize, \
const void *data); \
void copyBufferSubData(BufferBinding readTargetPacked, BufferBinding writeTargetPacked, \
GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); \
void copyTexSubImage3D(TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, \
GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); \
void deleteQueries(GLsizei n, const QueryID *idsPacked); \
void deleteSamplers(GLsizei count, const SamplerID *samplersPacked); \
void deleteSync(SyncID syncPacked); \
void deleteTransformFeedbacks(GLsizei n, const TransformFeedbackID *idsPacked); \
void deleteVertexArrays(GLsizei n, const VertexArrayID *arraysPacked); \
void drawArraysInstanced(PrimitiveMode modePacked, GLint first, GLsizei count, \
GLsizei instancecount); \
void drawBuffers(GLsizei n, const GLenum *bufs); \
void drawElementsInstanced(PrimitiveMode modePacked, GLsizei count, \
DrawElementsType typePacked, const void *indices, \
GLsizei instancecount); \
void drawRangeElements(PrimitiveMode modePacked, GLuint start, GLuint end, GLsizei count, \
DrawElementsType typePacked, const void *indices); \
void endQuery(QueryType targetPacked); \
void endTransformFeedback(); \
GLsync fenceSync(GLenum condition, GLbitfield flags); \
void flushMappedBufferRange(BufferBinding targetPacked, GLintptr offset, GLsizeiptr length); \
void framebufferTextureLayer(GLenum target, GLenum attachment, TextureID texturePacked, \
GLint level, GLint layer); \
void genQueries(GLsizei n, QueryID *idsPacked); \
void genSamplers(GLsizei count, SamplerID *samplersPacked); \
void genTransformFeedbacks(GLsizei n, TransformFeedbackID *idsPacked); \
void getActiveUniformBlockName(ShaderProgramID programPacked, \
UniformBlockIndex uniformBlockIndexPacked, GLsizei bufSize, \
GLsizei *length, GLchar *uniformBlockName); \
void getActiveUniformBlockiv(ShaderProgramID programPacked, \
UniformBlockIndex uniformBlockIndexPacked, GLenum pname, \
GLint *params); \
void getActiveUniformsiv(ShaderProgramID programPacked, GLsizei uniformCount, \
const GLuint *uniformIndices, GLenum pname, GLint *params); \
void getBufferParameteri64v(BufferBinding targetPacked, GLenum pname, GLint64 *params); \
void getBufferPointerv(BufferBinding targetPacked, GLenum pname, void **params); \
GLint getFragDataLocation(ShaderProgramID programPacked, const GLchar *name); \
void getInteger64i_v(GLenum target, GLuint index, GLint64 *data); \
void getInteger64v(GLenum pname, GLint64 *data); \
void getIntegeri_v(GLenum target, GLuint index, GLint *data); \
void getInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, \
GLint *params); \
void getProgramBinary(ShaderProgramID programPacked, GLsizei bufSize, GLsizei *length, \
GLenum *binaryFormat, void *binary); \
void getQueryObjectuiv(QueryID idPacked, GLenum pname, GLuint *params); \
void getQueryiv(QueryType targetPacked, GLenum pname, GLint *params); \
void getSamplerParameterfv(SamplerID samplerPacked, GLenum pname, GLfloat *params); \
void getSamplerParameteriv(SamplerID samplerPacked, GLenum pname, GLint *params); \
const GLubyte *getStringi(GLenum name, GLuint index); \
void getSynciv(SyncID syncPacked, GLenum pname, GLsizei count, GLsizei *length, \
GLint *values); \
void getTransformFeedbackVarying(ShaderProgramID programPacked, GLuint index, GLsizei bufSize, \
GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); \
GLuint getUniformBlockIndex(ShaderProgramID programPacked, const GLchar *uniformBlockName); \
void getUniformIndices(ShaderProgramID programPacked, GLsizei uniformCount, \
const GLchar *const *uniformNames, GLuint *uniformIndices); \
void getUniformuiv(ShaderProgramID programPacked, UniformLocation locationPacked, \
GLuint *params); \
void getVertexAttribIiv(GLuint index, GLenum pname, GLint *params); \
void getVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params); \
void invalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments); \
void invalidateSubFramebuffer(GLenum target, GLsizei numAttachments, \
const GLenum *attachments, GLint x, GLint y, GLsizei width, \
GLsizei height); \
GLboolean isQuery(QueryID idPacked) const; \
GLboolean isSampler(SamplerID samplerPacked) const; \
GLboolean isSync(SyncID syncPacked) const; \
GLboolean isTransformFeedback(TransformFeedbackID idPacked) const; \
void *mapBufferRange(BufferBinding targetPacked, GLintptr offset, GLsizeiptr length, \
GLbitfield access); \
void pauseTransformFeedback(); \
void programBinary(ShaderProgramID programPacked, GLenum binaryFormat, const void *binary, \
GLsizei length); \
void programParameteri(ShaderProgramID programPacked, GLenum pname, GLint value); \
void readBuffer(GLenum src); \
void renderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, \
GLsizei width, GLsizei height); \
void resumeTransformFeedback(); \
void samplerParameterf(SamplerID samplerPacked, GLenum pname, GLfloat param); \
void samplerParameterfv(SamplerID samplerPacked, GLenum pname, const GLfloat *param); \
void samplerParameteri(SamplerID samplerPacked, GLenum pname, GLint param); \
void samplerParameteriv(SamplerID samplerPacked, GLenum pname, const GLint *param); \
void texImage3D(TextureTarget targetPacked, GLint level, GLint internalformat, GLsizei width, \
GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, \
const void *pixels); \
void texStorage2D(TextureType targetPacked, GLsizei levels, GLenum internalformat, \
GLsizei width, GLsizei height); \
void texStorage3D(TextureType targetPacked, GLsizei levels, GLenum internalformat, \
GLsizei width, GLsizei height, GLsizei depth); \
void texSubImage3D(TextureTarget targetPacked, GLint level, GLint xoffset, GLint yoffset, \
GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, \
GLenum type, const void *pixels); \
void transformFeedbackVaryings(ShaderProgramID programPacked, GLsizei count, \
const GLchar *const *varyings, GLenum bufferMode); \
void uniform1ui(UniformLocation locationPacked, GLuint v0); \
void uniform1uiv(UniformLocation locationPacked, GLsizei count, const GLuint *value); \
void uniform2ui(UniformLocation locationPacked, GLuint v0, GLuint v1); \
void uniform2uiv(UniformLocation locationPacked, GLsizei count, const GLuint *value); \
void uniform3ui(UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2); \
void uniform3uiv(UniformLocation locationPacked, GLsizei count, const GLuint *value); \
void uniform4ui(UniformLocation locationPacked, GLuint v0, GLuint v1, GLuint v2, GLuint v3); \
void uniform4uiv(UniformLocation locationPacked, GLsizei count, const GLuint *value); \
void uniformBlockBinding(ShaderProgramID programPacked, \
UniformBlockIndex uniformBlockIndexPacked, \
GLuint uniformBlockBinding); \
void uniformMatrix2x3fv(UniformLocation locationPacked, GLsizei count, GLboolean transpose, \
const GLfloat *value); \
void uniformMatrix2x4fv(UniformLocation locationPacked, GLsizei count, GLboolean transpose, \
const GLfloat *value); \
void uniformMatrix3x2fv(UniformLocation locationPacked, GLsizei count, GLboolean transpose, \
const GLfloat *value); \
void uniformMatrix3x4fv(UniformLocation locationPacked, GLsizei count, GLboolean transpose, \
const GLfloat *value); \
void uniformMatrix4x2fv(UniformLocation locationPacked, GLsizei count, GLboolean transpose, \
const GLfloat *value); \
void uniformMatrix4x3fv(UniformLocation locationPacked, GLsizei count, GLboolean transpose, \
const GLfloat *value); \
GLboolean unmapBuffer(BufferBinding targetPacked); \
void vertexAttribIPointer(GLuint index, GLint size, VertexAttribType typePacked, \
GLsizei stride, const void *pointer); \
void waitSync(SyncID syncPacked, GLbitfield flags, GLuint64 timeout);
#endif // ANGLE_CONTEXT_API_3_0_AUTOGEN_H_