diff --git a/include/GLES2/gl2ext_explicit_context_autogen.inc b/include/GLES2/gl2ext_explicit_context_autogen.inc index d552bb33e..6807f6955 100644 --- a/include/GLES2/gl2ext_explicit_context_autogen.inc +++ b/include/GLES2/gl2ext_explicit_context_autogen.inc @@ -163,6 +163,7 @@ typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESCONTEXTANGLEPROC)(GLeglCont typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLECONTEXTANGLEPROC)(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEMEMEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESCONTEXTANGLEPROC)(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); @@ -540,6 +541,7 @@ GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOESContextANGLE(GLeglContext ctx GL_APICALL void GL_APIENTRY glBlendFunciEXTContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); GL_APICALL void GL_APIENTRY glBlendFunciOESContextANGLE(GLeglContext ctx, GLuint buf, GLenum src, GLenum dst); GL_APICALL void GL_APIENTRY glBlitFramebufferANGLEContextANGLE(GLeglContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GL_APICALL void GL_APIENTRY glBufferStorageEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); GL_APICALL void GL_APIENTRY glBufferStorageMemEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glColorMaskiEXTContextANGLE(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); GL_APICALL void GL_APIENTRY glColorMaskiOESContextANGLE(GLeglContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); diff --git a/scripts/code_generation_hashes/GL_EGL_WGL_loader.json b/scripts/code_generation_hashes/GL_EGL_WGL_loader.json index d98352f85..603743e80 100644 --- a/scripts/code_generation_hashes/GL_EGL_WGL_loader.json +++ b/scripts/code_generation_hashes/GL_EGL_WGL_loader.json @@ -10,7 +10,7 @@ "scripts/gl_angle_ext.xml": "5b91263f1099308e4e75f89d85be564e", "scripts/registry_xml.py": - "9fb89d0ee43040ddf1aa5899abfca7af", + "f39392222a1bcdbda197c0bf9d8f129c", "scripts/wgl.xml": "aa96419c582af2f6673430e2847693f4", "src/libEGL/egl_loader_autogen.cpp": @@ -22,17 +22,17 @@ "src/tests/restricted_traces/trace_egl_loader_autogen.h": "af2eb06cc8de3456b7bfde497b04c0c4", "src/tests/restricted_traces/trace_gles_loader_autogen.cpp": - "f989f0d3e94d1ae985cfc9514cea8d48", + "042b15665e979a934595f1a01dad0a1a", "src/tests/restricted_traces/trace_gles_loader_autogen.h": - "90da6d113a8248e148bf3a3853192292", + "27b0c9d7536604047c0795aa03a16b8d", "util/egl_loader_autogen.cpp": "e10da66fdf789e6c52dee1f9e1cd5a68", "util/egl_loader_autogen.h": "5e2ac71185c91139c6768adf8615b3c7", "util/gles_loader_autogen.cpp": - "4fb108c57db72c07d72883ec7c9e2286", + "1f0bf4b10f18d59bc5d0d556aa0aaebb", "util/gles_loader_autogen.h": - "cbe9fd9955c93090ffe584aab4f95639", + "8a8ef0e937a3d27732aee63a8ac6d780", "util/windows/wgl_loader_autogen.cpp": "60a40fba3ffddd40063fe6131bc67ba5", "util/windows/wgl_loader_autogen.h": diff --git a/scripts/code_generation_hashes/GL_EGL_entry_points.json b/scripts/code_generation_hashes/GL_EGL_entry_points.json index f2f495ec5..5d10df2ff 100644 --- a/scripts/code_generation_hashes/GL_EGL_entry_points.json +++ b/scripts/code_generation_hashes/GL_EGL_entry_points.json @@ -4,7 +4,7 @@ "scripts/egl_angle_ext.xml": "087d6a3996a91fbb0b664cac57c50c4c", "scripts/entry_point_packed_gl_enums.json": - "776bf87905f92e8bc21abfceb2ccf723", + "2d46a38023361f8e95af71042626667c", "scripts/generate_entry_points.py": "97af17f666be77934b2d54d3b66746f7", "scripts/gl.xml": @@ -12,7 +12,7 @@ "scripts/gl_angle_ext.xml": "5b91263f1099308e4e75f89d85be564e", "scripts/registry_xml.py": - "9fb89d0ee43040ddf1aa5899abfca7af", + "f39392222a1bcdbda197c0bf9d8f129c", "scripts/wgl.xml": "aa96419c582af2f6673430e2847693f4", "src/libANGLE/Context_gl_1_0_autogen.h": @@ -48,7 +48,7 @@ "src/libANGLE/Context_gl_4_3_autogen.h": "fbc402c961d759be5e221a84a9cb5d65", "src/libANGLE/Context_gl_4_4_autogen.h": - "27b04d8d3b1f7a2804d49b85627e78a9", + "f723877386ca9277ac4acea820a0d7f1", "src/libANGLE/Context_gl_4_5_autogen.h": "f06e102c161b2804caaa943027f157ad", "src/libANGLE/Context_gl_4_6_autogen.h": @@ -64,7 +64,7 @@ "src/libANGLE/Context_gles_3_2_autogen.h": "48567dca16fd881dfe6d61fee0e3106f", "src/libANGLE/Context_gles_ext_autogen.h": - "65ef040de0776d6a6f0a300d14b96920", + "717aad3984444d78922a7453ecb16111", "src/libANGLE/capture_gles_1_0_autogen.cpp": "1ee3e4aceb1afa9585aa458c600665a9", "src/libANGLE/capture_gles_1_0_autogen.h": @@ -86,15 +86,15 @@ "src/libANGLE/capture_gles_3_2_autogen.h": "3d8f561944c8e5c06c7c9e68559ff364", "src/libANGLE/capture_gles_ext_autogen.cpp": - "a392c54277ac3f609ea31095fe690287", + "701406c4e0704c416e3577fa2766de2b", "src/libANGLE/capture_gles_ext_autogen.h": - "39ba68d335d2a9b1227229c644d8acd1", + "67481484bb4f9ce9a52fb48e06166856", "src/libANGLE/entry_points_enum_autogen.cpp": - "56e4b6b6fa81c4044aa6f78840989c23", + "6eba92f7df9d0896ed6e6e633704ad2d", "src/libANGLE/entry_points_enum_autogen.h": - "023b6a1438d11469cb7ea083a840adab", + "5bfe6a82d530ef5ff020239e24dbfb57", "src/libANGLE/frame_capture_replay_autogen.cpp": - "7be11c0f9df0cb3130ffe2c47e6ea9fb", + "09901bfdd8b16c9e888380179b53aa7a", "src/libANGLE/frame_capture_utils_autogen.cpp": "7a4f16a96714e43faaa0bef299ad7028", "src/libANGLE/frame_capture_utils_autogen.h": @@ -110,7 +110,7 @@ "src/libANGLE/validationES3_autogen.h": "86ba503835328438158d9a464943f3bd", "src/libANGLE/validationESEXT_autogen.h": - "1df35b2a44339242296f284389058b9a", + "d68c0dc4a6102a6408ad25e2bed3448a", "src/libANGLE/validationGL11_autogen.h": "aadd145c1404de9c34d6b7c00404f10f", "src/libANGLE/validationGL12_autogen.h": @@ -142,7 +142,7 @@ "src/libANGLE/validationGL43_autogen.h": "0d05f9873cb5c65b0c68a60423e9c724", "src/libANGLE/validationGL44_autogen.h": - "ee89bec1bf4eab31b3b653c0f1a88d33", + "658f2758447628218db4547a27210b0e", "src/libANGLE/validationGL45_autogen.h": "a0af5104f0d3949c9d945387d11e6302", "src/libANGLE/validationGL46_autogen.h": @@ -214,7 +214,7 @@ "src/libGL/entry_points_gl_4_3_autogen.h": "abfa431742a2b643db21220944e10ab0", "src/libGL/entry_points_gl_4_4_autogen.cpp": - "cb8e53abee5240a9b21261ece4245344", + "69d079ef40f34737be2da2573a668091", "src/libGL/entry_points_gl_4_4_autogen.h": "cdf1651f00d26db547b153afc09acc1c", "src/libGL/entry_points_gl_4_5_autogen.cpp": @@ -250,15 +250,15 @@ "src/libGLESv2/entry_points_gles_3_2_autogen.h": "5798aa0a73af1d4ba5dfe99b6217a247", "src/libGLESv2/entry_points_gles_ext_autogen.cpp": - "39b7046fe133bf53363f94047c1e397c", + "9faa56624ca8c85dc8e5fc7d4f6af381", "src/libGLESv2/entry_points_gles_ext_autogen.h": - "cd61ad92a58edf34dfd2fa09e612edf5", + "43e410ee4628e3e93829ef740bd4c67f", "src/libGLESv2/libGLESv2_autogen.cpp": - "980929401e0c450b481ff9e5f91ced41", + "b498a6388981bf327ac8169d8485ca95", "src/libGLESv2/libGLESv2_autogen.def": - "0b5301a0cfda69c876cc88563883199a", + "bf06958fbb48dcad516f05fa74ed6efb", "src/libGLESv2/libGLESv2_no_capture_autogen.def": - "0a8cf9e24d7caf60e103e91ff7cd7bbe", + "4b48ee13fc6ed21a850b4526053488e0", "src/libGLESv2/libGLESv2_with_capture_autogen.def": - "78c3ebee64c4ff3e278a8c8abb802218" + "cae3c752aaffac1ccf94b5c1d3c9035b" } \ No newline at end of file diff --git a/scripts/code_generation_hashes/GLenum_value_to_string_map.json b/scripts/code_generation_hashes/GLenum_value_to_string_map.json index bf46d31ce..d23ca487b 100644 --- a/scripts/code_generation_hashes/GLenum_value_to_string_map.json +++ b/scripts/code_generation_hashes/GLenum_value_to_string_map.json @@ -6,9 +6,9 @@ "scripts/gl_angle_ext.xml": "5b91263f1099308e4e75f89d85be564e", "scripts/registry_xml.py": - "9fb89d0ee43040ddf1aa5899abfca7af", + "f39392222a1bcdbda197c0bf9d8f129c", "src/libANGLE/gl_enum_utils_autogen.cpp": - "adc5a5fa540a850ab15e563477cafc47", + "63c23d06152729e045b6be6ea814f0d9", "src/libANGLE/gl_enum_utils_autogen.h": "dd54f34be733affcb994fc315c3b972d" } \ No newline at end of file diff --git a/scripts/code_generation_hashes/proc_table.json b/scripts/code_generation_hashes/proc_table.json index 8c4a6c32e..8bd213f2d 100644 --- a/scripts/code_generation_hashes/proc_table.json +++ b/scripts/code_generation_hashes/proc_table.json @@ -10,11 +10,11 @@ "scripts/gl_angle_ext.xml": "5b91263f1099308e4e75f89d85be564e", "scripts/registry_xml.py": - "9fb89d0ee43040ddf1aa5899abfca7af", + "f39392222a1bcdbda197c0bf9d8f129c", "scripts/wgl.xml": "aa96419c582af2f6673430e2847693f4", "src/libGL/proc_table_wgl_autogen.cpp": "253f59ef3aa9ccfcab1364ae5101dbe2", "src/libGLESv2/proc_table_egl_autogen.cpp": - "32466f80e116effea6793b04ffdbac8d" + "829888d1aae6ad492614581f0e88b4b0" } \ No newline at end of file diff --git a/scripts/entry_point_packed_gl_enums.json b/scripts/entry_point_packed_gl_enums.json index 859a3e343..ec9a56188 100644 --- a/scripts/entry_point_packed_gl_enums.json +++ b/scripts/entry_point_packed_gl_enums.json @@ -105,6 +105,9 @@ "target": "BufferBinding", "usage": "BufferUsage" }, + "glBufferStorage": { + "target": "BufferBinding" + }, "glBufferStorageMem": { "memory": "MemoryObjectID", "target": "TextureType" @@ -1066,7 +1069,8 @@ "buffer": "BufferID" }, "glNamedBufferStorage": { - "buffer": "BufferID" + "buffer": "BufferID", + "target": "BufferBinding" }, "glNamedBufferSubData": { "buffer": "BufferID" diff --git a/scripts/registry_xml.py b/scripts/registry_xml.py index f67f10f1a..eb64d8123 100644 --- a/scripts/registry_xml.py +++ b/scripts/registry_xml.py @@ -63,6 +63,7 @@ gles_extensions = [ "GL_ANGLE_texture_multisample", "GL_ANGLE_translated_shader_source", "GL_EXT_blend_func_extended", + "GL_EXT_buffer_storage", "GL_EXT_debug_marker", "GL_EXT_discard_framebuffer", "GL_EXT_disjoint_timer_query", diff --git a/src/libANGLE/Caps.h b/src/libANGLE/Caps.h index 441e6f7bb..4d16c85c5 100644 --- a/src/libANGLE/Caps.h +++ b/src/libANGLE/Caps.h @@ -644,6 +644,9 @@ struct Extensions // GL_EXT_shadow_samplers bool shadowSamplersEXT = false; + + // GL_EXT_buffer_storage + bool bufferStorageEXT = false; }; // Pointer to a boolean memeber of the Extensions struct diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp index d95bedf43..061745c0a 100644 --- a/src/libANGLE/Context.cpp +++ b/src/libANGLE/Context.cpp @@ -5430,6 +5430,14 @@ void Context::primitiveBoundingBox(GLfloat minX, UNIMPLEMENTED(); } +void Context::bufferStorage(BufferBinding target, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + UNIMPLEMENTED(); +} + void Context::bufferData(BufferBinding target, GLsizeiptr size, const void *data, BufferUsage usage) { Buffer *buffer = mState.getTargetBuffer(target); diff --git a/src/libANGLE/Context_gl.cpp b/src/libANGLE/Context_gl.cpp index 1dc5099e9..12b329f82 100644 --- a/src/libANGLE/Context_gl.cpp +++ b/src/libANGLE/Context_gl.cpp @@ -2831,11 +2831,6 @@ void Context::bindVertexBuffers(GLuint first, UNIMPLEMENTED(); } -void Context::bufferStorage(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags) -{ - UNIMPLEMENTED(); -} - void Context::clearTexImage(TextureID texture, GLint level, GLenum format, diff --git a/src/libANGLE/Context_gl_4_4_autogen.h b/src/libANGLE/Context_gl_4_4_autogen.h index 93882168a..48e035f08 100644 --- a/src/libANGLE/Context_gl_4_4_autogen.h +++ b/src/libANGLE/Context_gl_4_4_autogen.h @@ -21,7 +21,6 @@ void bindTextures(GLuint first, GLsizei count, const GLuint *textures); \ void bindVertexBuffers(GLuint first, GLsizei count, const BufferID *buffersPacked, \ const GLintptr *offsets, const GLsizei *strides); \ - void bufferStorage(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); \ void clearTexImage(TextureID texturePacked, GLint level, GLenum format, GLenum type, \ const void *data); \ void clearTexSubImage(TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset, \ diff --git a/src/libANGLE/Context_gles_ext_autogen.h b/src/libANGLE/Context_gles_ext_autogen.h index f1996c567..45bcb2185 100644 --- a/src/libANGLE/Context_gles_ext_autogen.h +++ b/src/libANGLE/Context_gles_ext_autogen.h @@ -298,6 +298,9 @@ GLint getFragDataIndex(ShaderProgramID programPacked, const GLchar *name); \ GLint getProgramResourceLocationIndex(ShaderProgramID programPacked, GLenum programInterface, \ const GLchar *name); \ + /* GL_EXT_buffer_storage */ \ + void bufferStorage(BufferBinding targetPacked, GLsizeiptr size, const void *data, \ + GLbitfield flags); \ /* GL_EXT_compressed_ETC1_RGB8_sub_texture */ \ /* GL_EXT_debug_marker */ \ void insertEventMarker(GLsizei length, const GLchar *marker); \ diff --git a/src/libANGLE/capture_gles_ext_autogen.cpp b/src/libANGLE/capture_gles_ext_autogen.cpp index fa3216437..30476fc03 100644 --- a/src/libANGLE/capture_gles_ext_autogen.cpp +++ b/src/libANGLE/capture_gles_ext_autogen.cpp @@ -4522,6 +4522,40 @@ CallCapture CaptureGetProgramResourceLocationIndexEXT(const State &glState, return CallCapture(gl::EntryPoint::GetProgramResourceLocationIndexEXT, std::move(paramBuffer)); } +CallCapture CaptureBufferStorageEXT(const State &glState, + bool isCallValid, + BufferBinding targetPacked, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + ParamBuffer paramBuffer; + + paramBuffer.addValueParam("targetPacked", ParamType::TBufferBinding, targetPacked); + paramBuffer.addValueParam("size", ParamType::TGLsizeiptr, size); + + if (isCallValid) + { + ParamCapture dataParam("data", ParamType::TvoidConstPointer); + InitParamValue(ParamType::TvoidConstPointer, data, &dataParam.value); + CaptureBufferStorageEXT_data(glState, isCallValid, targetPacked, size, data, flags, + &dataParam); + paramBuffer.addParam(std::move(dataParam)); + } + else + { + ParamCapture dataParam("data", ParamType::TvoidConstPointer); + InitParamValue(ParamType::TvoidConstPointer, static_cast(nullptr), + &dataParam.value); + paramBuffer.addParam(std::move(dataParam)); + } + + paramBuffer.addEnumParam("flags", GLenumGroup::MapBufferUsageMask, ParamType::TGLbitfield, + flags); + + return CallCapture(gl::EntryPoint::BufferStorageEXT, std::move(paramBuffer)); +} + CallCapture CaptureInsertEventMarkerEXT(const State &glState, bool isCallValid, GLsizei length, diff --git a/src/libANGLE/capture_gles_ext_autogen.h b/src/libANGLE/capture_gles_ext_autogen.h index 6b5ab64d4..083f0e02b 100644 --- a/src/libANGLE/capture_gles_ext_autogen.h +++ b/src/libANGLE/capture_gles_ext_autogen.h @@ -890,6 +890,14 @@ angle::CallCapture CaptureGetProgramResourceLocationIndexEXT(const State &glStat const GLchar *name, GLint returnValue); +// GL_EXT_buffer_storage +angle::CallCapture CaptureBufferStorageEXT(const State &glState, + bool isCallValid, + BufferBinding targetPacked, + GLsizeiptr size, + const void *data, + GLbitfield flags); + // GL_EXT_debug_marker angle::CallCapture CaptureInsertEventMarkerEXT(const State &glState, bool isCallValid, @@ -3205,6 +3213,13 @@ void CaptureGetProgramResourceLocationIndexEXT_name(const State &glState, GLenum programInterface, const GLchar *name, angle::ParamCapture *paramCapture); +void CaptureBufferStorageEXT_data(const State &glState, + bool isCallValid, + BufferBinding targetPacked, + GLsizeiptr size, + const void *data, + GLbitfield flags, + angle::ParamCapture *paramCapture); void CaptureInsertEventMarkerEXT_marker(const State &glState, bool isCallValid, GLsizei length, diff --git a/src/libANGLE/capture_gles_ext_params.cpp b/src/libANGLE/capture_gles_ext_params.cpp index 3e3775c6a..1ae87159c 100644 --- a/src/libANGLE/capture_gles_ext_params.cpp +++ b/src/libANGLE/capture_gles_ext_params.cpp @@ -3321,4 +3321,15 @@ void CaptureGetRenderbufferImageANGLE_pixels(const State &glState, { UNIMPLEMENTED(); } + +void CaptureBufferStorageEXT_data(const State &glState, + bool isCallValid, + BufferBinding targetPacked, + GLsizeiptr size, + const void *data, + GLbitfield flags, + angle::ParamCapture *paramCapture) +{ + UNIMPLEMENTED(); +} } // namespace gl diff --git a/src/libANGLE/entry_points_enum_autogen.cpp b/src/libANGLE/entry_points_enum_autogen.cpp index 458b80b1a..2a7b7c639 100644 --- a/src/libANGLE/entry_points_enum_autogen.cpp +++ b/src/libANGLE/entry_points_enum_autogen.cpp @@ -150,6 +150,8 @@ const char *GetEntryPointName(EntryPoint ep) return "glBufferData"; case EntryPoint::BufferStorage: return "glBufferStorage"; + case EntryPoint::BufferStorageEXT: + return "glBufferStorageEXT"; case EntryPoint::BufferStorageMemEXT: return "glBufferStorageMemEXT"; case EntryPoint::BufferSubData: diff --git a/src/libANGLE/entry_points_enum_autogen.h b/src/libANGLE/entry_points_enum_autogen.h index a1d136c1d..32801ba2f 100644 --- a/src/libANGLE/entry_points_enum_autogen.h +++ b/src/libANGLE/entry_points_enum_autogen.h @@ -81,6 +81,7 @@ enum class EntryPoint BlitNamedFramebuffer, BufferData, BufferStorage, + BufferStorageEXT, BufferStorageMemEXT, BufferSubData, CallList, diff --git a/src/libANGLE/frame_capture_replay_autogen.cpp b/src/libANGLE/frame_capture_replay_autogen.cpp index f21893905..3f38a736a 100644 --- a/src/libANGLE/frame_capture_replay_autogen.cpp +++ b/src/libANGLE/frame_capture_replay_autogen.cpp @@ -238,6 +238,15 @@ void FrameCapture::ReplayCall(gl::Context *context, params.getParam("data", ParamType::TvoidConstPointer, 2)), params.getParam("usagePacked", ParamType::TBufferUsage, 3).value.BufferUsageVal); break; + case gl::EntryPoint::BufferStorage: + context->bufferStorage( + params.getParam("targetPacked", ParamType::TBufferBinding, 0) + .value.BufferBindingVal, + params.getParam("size", ParamType::TGLsizeiptr, 1).value.GLsizeiptrVal, + replayContext->getAsConstPointer( + params.getParam("data", ParamType::TvoidConstPointer, 2)), + params.getParam("flags", ParamType::TGLbitfield, 3).value.GLbitfieldVal); + break; case gl::EntryPoint::BufferSubData: context->bufferSubData( params.getParam("targetPacked", ParamType::TBufferBinding, 0) diff --git a/src/libANGLE/gl_enum_utils_autogen.cpp b/src/libANGLE/gl_enum_utils_autogen.cpp index e44540ecd..1dbde0f5a 100644 --- a/src/libANGLE/gl_enum_utils_autogen.cpp +++ b/src/libANGLE/gl_enum_utils_autogen.cpp @@ -265,6 +265,10 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value) return "GL_MAP_FLUSH_EXPLICIT_BIT"; case 0x20: return "GL_MAP_UNSYNCHRONIZED_BIT"; + case 0x40: + return "GL_MAP_PERSISTENT_BIT_EXT"; + case 0x80: + return "GL_MAP_COHERENT_BIT_EXT"; default: return kUnknownGLenumString; } @@ -756,6 +760,10 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value) return "GL_NUM_EXTENSIONS"; case 0x821E: return "GL_CONTEXT_FLAGS"; + case 0x821F: + return "GL_BUFFER_IMMUTABLE_STORAGE_EXT"; + case 0x8220: + return "GL_BUFFER_STORAGE_FLAGS_EXT"; case 0x8221: return "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"; case 0x8228: @@ -2694,6 +2702,14 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value) return "GL_MAP_FLUSH_EXPLICIT_BIT"; case 0x20: return "GL_MAP_UNSYNCHRONIZED_BIT"; + case 0x40: + return "GL_MAP_PERSISTENT_BIT_EXT"; + case 0x80: + return "GL_MAP_COHERENT_BIT_EXT"; + case 0x100: + return "GL_DYNAMIC_STORAGE_BIT_EXT"; + case 0x200: + return "GL_CLIENT_STORAGE_BIT_EXT"; default: return kUnknownGLenumString; } @@ -2755,6 +2771,8 @@ const char *GLenumToString(GLenumGroup enumGroup, unsigned int value) return "GL_ATOMIC_COUNTER_BARRIER_BIT"; case 0x2000: return "GL_SHADER_STORAGE_BARRIER_BIT"; + case 0x4000: + return "GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT"; case 0xFFFFFFFF: return "GL_ALL_BARRIER_BITS"; default: diff --git a/src/libANGLE/validationESEXT.cpp b/src/libANGLE/validationESEXT.cpp index e636664c4..78d29649b 100644 --- a/src/libANGLE/validationESEXT.cpp +++ b/src/libANGLE/validationESEXT.cpp @@ -1049,4 +1049,15 @@ bool ValidateTexStorageMemFlags3DMultisampleANGLE(const Context *context, UNIMPLEMENTED(); return false; } + +// GL_EXT_buffer_storage +bool ValidateBufferStorageEXT(const Context *context, + BufferBinding targetPacked, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + UNIMPLEMENTED(); + return false; +} } // namespace gl diff --git a/src/libANGLE/validationESEXT_autogen.h b/src/libANGLE/validationESEXT_autogen.h index aadc17b27..1770df6c7 100644 --- a/src/libANGLE/validationESEXT_autogen.h +++ b/src/libANGLE/validationESEXT_autogen.h @@ -767,6 +767,13 @@ bool ValidateGetProgramResourceLocationIndexEXT(const Context *context, GLenum programInterface, const GLchar *name); +// GL_EXT_buffer_storage +bool ValidateBufferStorageEXT(const Context *context, + BufferBinding targetPacked, + GLsizeiptr size, + const void *data, + GLbitfield flags); + // GL_EXT_debug_marker bool ValidateInsertEventMarkerEXT(const Context *context, GLsizei length, const GLchar *marker); bool ValidatePopGroupMarkerEXT(const Context *context); diff --git a/src/libANGLE/validationGL44.cpp b/src/libANGLE/validationGL44.cpp index 580d838cf..d95c1e01e 100644 --- a/src/libANGLE/validationGL44.cpp +++ b/src/libANGLE/validationGL44.cpp @@ -66,7 +66,7 @@ bool ValidateBindVertexBuffers(const Context *context, } bool ValidateBufferStorage(const Context *context, - GLenum target, + BufferBinding targetPacked, GLsizeiptr size, const void *data, GLbitfield flags) diff --git a/src/libANGLE/validationGL44_autogen.h b/src/libANGLE/validationGL44_autogen.h index 43d748878..afe788bc3 100644 --- a/src/libANGLE/validationGL44_autogen.h +++ b/src/libANGLE/validationGL44_autogen.h @@ -48,7 +48,7 @@ bool ValidateBindVertexBuffers(const Context *context, const GLintptr *offsets, const GLsizei *strides); bool ValidateBufferStorage(const Context *context, - GLenum target, + BufferBinding targetPacked, GLsizeiptr size, const void *data, GLbitfield flags); diff --git a/src/libGL/entry_points_gl_4_4_autogen.cpp b/src/libGL/entry_points_gl_4_4_autogen.cpp index a697b4226..d58ed4377 100644 --- a/src/libGL/entry_points_gl_4_4_autogen.cpp +++ b/src/libGL/entry_points_gl_4_4_autogen.cpp @@ -185,14 +185,15 @@ void GL_APIENTRY BufferStorage(GLenum target, GLsizeiptr size, const void *data, if (context) { + BufferBinding targetPacked = FromGL(target); std::unique_lock shareContextLock = GetShareGroupLock(context); bool isCallValid = (context->skipValidation() || - ValidateBufferStorage(context, target, size, data, flags)); + ValidateBufferStorage(context, targetPacked, size, data, flags)); if (isCallValid) { - context->bufferStorage(target, size, data, flags); + context->bufferStorage(targetPacked, size, data, flags); } - ANGLE_CAPTURE(BufferStorage, isCallValid, context, target, size, data, flags); + ANGLE_CAPTURE(BufferStorage, isCallValid, context, targetPacked, size, data, flags); } } diff --git a/src/libGLESv2/entry_points_gles_ext_autogen.cpp b/src/libGLESv2/entry_points_gles_ext_autogen.cpp index 5892f39ff..82892e928 100644 --- a/src/libGLESv2/entry_points_gles_ext_autogen.cpp +++ b/src/libGLESv2/entry_points_gles_ext_autogen.cpp @@ -3364,6 +3364,34 @@ GLint GL_APIENTRY GetProgramResourceLocationIndexEXT(GLuint program, return returnValue; } +// GL_EXT_buffer_storage +void GL_APIENTRY BufferStorageEXT(GLenum target, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + Context *context = GetValidGlobalContext(); + EVENT("glBufferStorageEXT", + "context = %d, GLenum target = %s, GLsizeiptr size = %llu, const void *data = " + "0x%016" PRIxPTR ", GLbitfield flags = %s", + CID(context), GLenumToString(GLenumGroup::BufferStorageTarget, target), + static_cast(size), (uintptr_t)data, + GLbitfieldToString(GLenumGroup::MapBufferUsageMask, flags).c_str()); + + if (context) + { + BufferBinding targetPacked = FromGL(target); + std::unique_lock shareContextLock = GetShareGroupLock(context); + bool isCallValid = (context->skipValidation() || + ValidateBufferStorageEXT(context, targetPacked, size, data, flags)); + if (isCallValid) + { + context->bufferStorage(targetPacked, size, data, flags); + } + ANGLE_CAPTURE(BufferStorageEXT, isCallValid, context, targetPacked, size, data, flags); + } +} + // GL_EXT_debug_marker void GL_APIENTRY InsertEventMarkerEXT(GLsizei length, const GLchar *marker) { @@ -8713,6 +8741,35 @@ void GL_APIENTRY BufferDataContextANGLE(GLeglContext ctx, } } +void GL_APIENTRY BufferStorageEXTContextANGLE(GLeglContext ctx, + GLenum target, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + Context *context = static_cast(ctx); + EVENT("glBufferStorageEXT", + "context = %d, GLenum target = %s, GLsizeiptr size = %llu, const void *data = " + "0x%016" PRIxPTR ", GLbitfield flags = %s", + CID(context), GLenumToString(GLenumGroup::BufferStorageTarget, target), + static_cast(size), (uintptr_t)data, + GLbitfieldToString(GLenumGroup::MapBufferUsageMask, flags).c_str()); + + if (context) + { + ASSERT(context == GetValidGlobalContext()); + BufferBinding targetPacked = FromGL(target); + std::unique_lock shareContextLock = GetShareGroupLock(context); + bool isCallValid = (context->skipValidation() || + ValidateBufferStorageEXT(context, targetPacked, size, data, flags)); + if (isCallValid) + { + context->bufferStorage(targetPacked, size, data, flags); + } + ANGLE_CAPTURE(BufferStorageEXT, isCallValid, context, targetPacked, size, data, flags); + } +} + void GL_APIENTRY BufferStorageMemEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, diff --git a/src/libGLESv2/entry_points_gles_ext_autogen.h b/src/libGLESv2/entry_points_gles_ext_autogen.h index 3e4ad250e..a4a5897c3 100644 --- a/src/libGLESv2/entry_points_gles_ext_autogen.h +++ b/src/libGLESv2/entry_points_gles_ext_autogen.h @@ -662,6 +662,12 @@ ANGLE_EXPORT GLint GL_APIENTRY GetProgramResourceLocationIndexEXT(GLuint program GLenum programInterface, const GLchar *name); +// GL_EXT_buffer_storage +ANGLE_EXPORT void GL_APIENTRY BufferStorageEXT(GLenum target, + GLsizeiptr size, + const void *data, + GLbitfield flags); + // GL_EXT_debug_marker ANGLE_EXPORT void GL_APIENTRY InsertEventMarkerEXT(GLsizei length, const GLchar *marker); ANGLE_EXPORT void GL_APIENTRY PopGroupMarkerEXT(); @@ -1389,6 +1395,11 @@ ANGLE_EXPORT void GL_APIENTRY BufferDataContextANGLE(GLeglContext ctx, GLsizeiptr size, const void *data, GLenum usage); +ANGLE_EXPORT void GL_APIENTRY BufferStorageEXTContextANGLE(GLeglContext ctx, + GLenum target, + GLsizeiptr size, + const void *data, + GLbitfield flags); ANGLE_EXPORT void GL_APIENTRY BufferStorageMemEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, diff --git a/src/libGLESv2/libGLESv2_autogen.cpp b/src/libGLESv2/libGLESv2_autogen.cpp index abf06ced2..ad88798ac 100644 --- a/src/libGLESv2/libGLESv2_autogen.cpp +++ b/src/libGLESv2/libGLESv2_autogen.cpp @@ -3798,6 +3798,15 @@ GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT(GLuint program, return gl::GetProgramResourceLocationIndexEXT(program, programInterface, name); } +// GL_EXT_buffer_storage +void GL_APIENTRY glBufferStorageEXT(GLenum target, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + return gl::BufferStorageEXT(target, size, data, flags); +} + // GL_EXT_debug_marker void GL_APIENTRY glInsertEventMarkerEXT(GLsizei length, const GLchar *marker) { @@ -5283,6 +5292,15 @@ void GL_APIENTRY glBufferDataContextANGLE(GLeglContext ctx, return gl::BufferDataContextANGLE(ctx, target, size, data, usage); } +void GL_APIENTRY glBufferStorageEXTContextANGLE(GLeglContext ctx, + GLenum target, + GLsizeiptr size, + const void *data, + GLbitfield flags) +{ + return gl::BufferStorageEXTContextANGLE(ctx, target, size, data, flags); +} + void GL_APIENTRY glBufferStorageMemEXTContextANGLE(GLeglContext ctx, GLenum target, GLsizeiptr size, diff --git a/src/libGLESv2/libGLESv2_autogen.def b/src/libGLESv2/libGLESv2_autogen.def index 1eda3bc42..bbd998843 100644 --- a/src/libGLESv2/libGLESv2_autogen.def +++ b/src/libGLESv2/libGLESv2_autogen.def @@ -616,6 +616,9 @@ EXPORTS glGetFragDataIndexEXT glGetProgramResourceLocationIndexEXT + ; GL_EXT_buffer_storage + glBufferStorageEXT + ; GL_EXT_debug_marker glInsertEventMarkerEXT glPopGroupMarkerEXT @@ -937,6 +940,7 @@ EXPORTS glBlitFramebufferContextANGLE glBlitFramebufferANGLEContextANGLE glBufferDataContextANGLE + glBufferStorageEXTContextANGLE glBufferStorageMemEXTContextANGLE glBufferSubDataContextANGLE glCheckFramebufferStatusContextANGLE diff --git a/src/libGLESv2/libGLESv2_no_capture_autogen.def b/src/libGLESv2/libGLESv2_no_capture_autogen.def index b2b5de0fa..c6dc32b2d 100644 --- a/src/libGLESv2/libGLESv2_no_capture_autogen.def +++ b/src/libGLESv2/libGLESv2_no_capture_autogen.def @@ -616,6 +616,9 @@ EXPORTS glGetFragDataIndexEXT glGetProgramResourceLocationIndexEXT + ; GL_EXT_buffer_storage + glBufferStorageEXT + ; GL_EXT_debug_marker glInsertEventMarkerEXT glPopGroupMarkerEXT @@ -937,6 +940,7 @@ EXPORTS glBlitFramebufferContextANGLE glBlitFramebufferANGLEContextANGLE glBufferDataContextANGLE + glBufferStorageEXTContextANGLE glBufferStorageMemEXTContextANGLE glBufferSubDataContextANGLE glCheckFramebufferStatusContextANGLE diff --git a/src/libGLESv2/libGLESv2_with_capture_autogen.def b/src/libGLESv2/libGLESv2_with_capture_autogen.def index a56aa56ff..7d6b7be5c 100644 --- a/src/libGLESv2/libGLESv2_with_capture_autogen.def +++ b/src/libGLESv2/libGLESv2_with_capture_autogen.def @@ -616,6 +616,9 @@ EXPORTS glGetFragDataIndexEXT glGetProgramResourceLocationIndexEXT + ; GL_EXT_buffer_storage + glBufferStorageEXT + ; GL_EXT_debug_marker glInsertEventMarkerEXT glPopGroupMarkerEXT @@ -937,6 +940,7 @@ EXPORTS glBlitFramebufferContextANGLE glBlitFramebufferANGLEContextANGLE glBufferDataContextANGLE + glBufferStorageEXTContextANGLE glBufferStorageMemEXTContextANGLE glBufferSubDataContextANGLE glCheckFramebufferStatusContextANGLE diff --git a/src/libGLESv2/proc_table_egl_autogen.cpp b/src/libGLESv2/proc_table_egl_autogen.cpp index f81a30721..b70c40ae9 100644 --- a/src/libGLESv2/proc_table_egl_autogen.cpp +++ b/src/libGLESv2/proc_table_egl_autogen.cpp @@ -225,6 +225,8 @@ const ProcEntry g_procTable[] = { {"glBlitFramebufferContextANGLE", P(gl::BlitFramebufferContextANGLE)}, {"glBufferData", P(gl::BufferData)}, {"glBufferDataContextANGLE", P(gl::BufferDataContextANGLE)}, + {"glBufferStorageEXT", P(gl::BufferStorageEXT)}, + {"glBufferStorageEXTContextANGLE", P(gl::BufferStorageEXTContextANGLE)}, {"glBufferStorageMemEXT", P(gl::BufferStorageMemEXT)}, {"glBufferStorageMemEXTContextANGLE", P(gl::BufferStorageMemEXTContextANGLE)}, {"glBufferSubData", P(gl::BufferSubData)}, @@ -1627,5 +1629,5 @@ const ProcEntry g_procTable[] = { {"glWeightPointerOES", P(gl::WeightPointerOES)}, {"glWeightPointerOESContextANGLE", P(gl::WeightPointerOESContextANGLE)}}; -const size_t g_numProcs = 1530; +const size_t g_numProcs = 1532; } // namespace egl diff --git a/src/tests/restricted_traces/trace_gles_loader_autogen.cpp b/src/tests/restricted_traces/trace_gles_loader_autogen.cpp index 1f6a66937..f0215311c 100644 --- a/src/tests/restricted_traces/trace_gles_loader_autogen.cpp +++ b/src/tests/restricted_traces/trace_gles_loader_autogen.cpp @@ -535,6 +535,7 @@ ANGLE_TRACE_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC t_glBindFragDataLocat ANGLE_TRACE_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC t_glGetFragDataIndexEXT; ANGLE_TRACE_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC t_glGetProgramResourceLocationIndexEXT; +ANGLE_TRACE_EXPORT PFNGLBUFFERSTORAGEEXTPROC t_glBufferStorageEXT; ANGLE_TRACE_EXPORT PFNGLINSERTEVENTMARKEREXTPROC t_glInsertEventMarkerEXT; ANGLE_TRACE_EXPORT PFNGLPOPGROUPMARKEREXTPROC t_glPopGroupMarkerEXT; ANGLE_TRACE_EXPORT PFNGLPUSHGROUPMARKEREXTPROC t_glPushGroupMarkerEXT; @@ -1345,6 +1346,7 @@ ANGLE_TRACE_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTCONTEXTANGLEPROC ANGLE_TRACE_EXPORT PFNGLGETFRAGDATAINDEXEXTCONTEXTANGLEPROC t_glGetFragDataIndexEXTContextANGLE; ANGLE_TRACE_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTCONTEXTANGLEPROC t_glGetProgramResourceLocationIndexEXTContextANGLE; +ANGLE_TRACE_EXPORT PFNGLBUFFERSTORAGEEXTCONTEXTANGLEPROC t_glBufferStorageEXTContextANGLE; ANGLE_TRACE_EXPORT PFNGLINSERTEVENTMARKEREXTCONTEXTANGLEPROC t_glInsertEventMarkerEXTContextANGLE; ANGLE_TRACE_EXPORT PFNGLPOPGROUPMARKEREXTCONTEXTANGLEPROC t_glPopGroupMarkerEXTContextANGLE; ANGLE_TRACE_EXPORT PFNGLPUSHGROUPMARKEREXTCONTEXTANGLEPROC t_glPushGroupMarkerEXTContextANGLE; @@ -2374,6 +2376,8 @@ void LoadGLES(LoadProc loadProc) t_glGetProgramResourceLocationIndexEXT = reinterpret_cast( loadProc("glGetProgramResourceLocationIndexEXT")); + t_glBufferStorageEXT = + reinterpret_cast(loadProc("glBufferStorageEXT")); t_glInsertEventMarkerEXT = reinterpret_cast(loadProc("glInsertEventMarkerEXT")); t_glPopGroupMarkerEXT = @@ -3861,6 +3865,8 @@ void LoadGLES(LoadProc loadProc) t_glGetProgramResourceLocationIndexEXTContextANGLE = reinterpret_cast( loadProc("glGetProgramResourceLocationIndexEXTContextANGLE")); + t_glBufferStorageEXTContextANGLE = reinterpret_cast( + loadProc("glBufferStorageEXTContextANGLE")); t_glInsertEventMarkerEXTContextANGLE = reinterpret_cast( loadProc("glInsertEventMarkerEXTContextANGLE")); diff --git a/src/tests/restricted_traces/trace_gles_loader_autogen.h b/src/tests/restricted_traces/trace_gles_loader_autogen.h index cf2a1ec7e..a15548310 100644 --- a/src/tests/restricted_traces/trace_gles_loader_autogen.h +++ b/src/tests/restricted_traces/trace_gles_loader_autogen.h @@ -529,6 +529,7 @@ #define glBindFragDataLocationIndexedEXT t_glBindFragDataLocationIndexedEXT #define glGetFragDataIndexEXT t_glGetFragDataIndexEXT #define glGetProgramResourceLocationIndexEXT t_glGetProgramResourceLocationIndexEXT +#define glBufferStorageEXT t_glBufferStorageEXT #define glInsertEventMarkerEXT t_glInsertEventMarkerEXT #define glPopGroupMarkerEXT t_glPopGroupMarkerEXT #define glPushGroupMarkerEXT t_glPushGroupMarkerEXT @@ -1232,6 +1233,7 @@ #define glGetFragDataIndexEXTContextANGLE t_glGetFragDataIndexEXTContextANGLE #define glGetProgramResourceLocationIndexEXTContextANGLE \ t_glGetProgramResourceLocationIndexEXTContextANGLE +#define glBufferStorageEXTContextANGLE t_glBufferStorageEXTContextANGLE #define glInsertEventMarkerEXTContextANGLE t_glInsertEventMarkerEXTContextANGLE #define glPopGroupMarkerEXTContextANGLE t_glPopGroupMarkerEXTContextANGLE #define glPushGroupMarkerEXTContextANGLE t_glPushGroupMarkerEXTContextANGLE @@ -1950,6 +1952,7 @@ ANGLE_TRACE_EXPORT extern PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC ANGLE_TRACE_EXPORT extern PFNGLGETFRAGDATAINDEXEXTPROC t_glGetFragDataIndexEXT; ANGLE_TRACE_EXPORT extern PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC t_glGetProgramResourceLocationIndexEXT; +ANGLE_TRACE_EXPORT extern PFNGLBUFFERSTORAGEEXTPROC t_glBufferStorageEXT; ANGLE_TRACE_EXPORT extern PFNGLINSERTEVENTMARKEREXTPROC t_glInsertEventMarkerEXT; ANGLE_TRACE_EXPORT extern PFNGLPOPGROUPMARKEREXTPROC t_glPopGroupMarkerEXT; ANGLE_TRACE_EXPORT extern PFNGLPUSHGROUPMARKEREXTPROC t_glPushGroupMarkerEXT; @@ -2845,6 +2848,7 @@ ANGLE_TRACE_EXPORT extern PFNGLGETFRAGDATAINDEXEXTCONTEXTANGLEPROC t_glGetFragDataIndexEXTContextANGLE; ANGLE_TRACE_EXPORT extern PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTCONTEXTANGLEPROC t_glGetProgramResourceLocationIndexEXTContextANGLE; +ANGLE_TRACE_EXPORT extern PFNGLBUFFERSTORAGEEXTCONTEXTANGLEPROC t_glBufferStorageEXTContextANGLE; ANGLE_TRACE_EXPORT extern PFNGLINSERTEVENTMARKEREXTCONTEXTANGLEPROC t_glInsertEventMarkerEXTContextANGLE; ANGLE_TRACE_EXPORT extern PFNGLPOPGROUPMARKEREXTCONTEXTANGLEPROC t_glPopGroupMarkerEXTContextANGLE; diff --git a/util/gles_loader_autogen.cpp b/util/gles_loader_autogen.cpp index 3ae77a9a1..511df4400 100644 --- a/util/gles_loader_autogen.cpp +++ b/util/gles_loader_autogen.cpp @@ -535,6 +535,7 @@ ANGLE_UTIL_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC l_glBindFragDataLocati ANGLE_UTIL_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC l_glGetFragDataIndexEXT; ANGLE_UTIL_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC l_glGetProgramResourceLocationIndexEXT; +ANGLE_UTIL_EXPORT PFNGLBUFFERSTORAGEEXTPROC l_glBufferStorageEXT; ANGLE_UTIL_EXPORT PFNGLINSERTEVENTMARKEREXTPROC l_glInsertEventMarkerEXT; ANGLE_UTIL_EXPORT PFNGLPOPGROUPMARKEREXTPROC l_glPopGroupMarkerEXT; ANGLE_UTIL_EXPORT PFNGLPUSHGROUPMARKEREXTPROC l_glPushGroupMarkerEXT; @@ -1345,6 +1346,7 @@ ANGLE_UTIL_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTCONTEXTANGLEPROC ANGLE_UTIL_EXPORT PFNGLGETFRAGDATAINDEXEXTCONTEXTANGLEPROC l_glGetFragDataIndexEXTContextANGLE; ANGLE_UTIL_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTCONTEXTANGLEPROC l_glGetProgramResourceLocationIndexEXTContextANGLE; +ANGLE_UTIL_EXPORT PFNGLBUFFERSTORAGEEXTCONTEXTANGLEPROC l_glBufferStorageEXTContextANGLE; ANGLE_UTIL_EXPORT PFNGLINSERTEVENTMARKEREXTCONTEXTANGLEPROC l_glInsertEventMarkerEXTContextANGLE; ANGLE_UTIL_EXPORT PFNGLPOPGROUPMARKEREXTCONTEXTANGLEPROC l_glPopGroupMarkerEXTContextANGLE; ANGLE_UTIL_EXPORT PFNGLPUSHGROUPMARKEREXTCONTEXTANGLEPROC l_glPushGroupMarkerEXTContextANGLE; @@ -2374,6 +2376,8 @@ void LoadGLES(LoadProc loadProc) l_glGetProgramResourceLocationIndexEXT = reinterpret_cast( loadProc("glGetProgramResourceLocationIndexEXT")); + l_glBufferStorageEXT = + reinterpret_cast(loadProc("glBufferStorageEXT")); l_glInsertEventMarkerEXT = reinterpret_cast(loadProc("glInsertEventMarkerEXT")); l_glPopGroupMarkerEXT = @@ -3861,6 +3865,8 @@ void LoadGLES(LoadProc loadProc) l_glGetProgramResourceLocationIndexEXTContextANGLE = reinterpret_cast( loadProc("glGetProgramResourceLocationIndexEXTContextANGLE")); + l_glBufferStorageEXTContextANGLE = reinterpret_cast( + loadProc("glBufferStorageEXTContextANGLE")); l_glInsertEventMarkerEXTContextANGLE = reinterpret_cast( loadProc("glInsertEventMarkerEXTContextANGLE")); diff --git a/util/gles_loader_autogen.h b/util/gles_loader_autogen.h index 03af70ed1..e4b154194 100644 --- a/util/gles_loader_autogen.h +++ b/util/gles_loader_autogen.h @@ -529,6 +529,7 @@ #define glBindFragDataLocationIndexedEXT l_glBindFragDataLocationIndexedEXT #define glGetFragDataIndexEXT l_glGetFragDataIndexEXT #define glGetProgramResourceLocationIndexEXT l_glGetProgramResourceLocationIndexEXT +#define glBufferStorageEXT l_glBufferStorageEXT #define glInsertEventMarkerEXT l_glInsertEventMarkerEXT #define glPopGroupMarkerEXT l_glPopGroupMarkerEXT #define glPushGroupMarkerEXT l_glPushGroupMarkerEXT @@ -1232,6 +1233,7 @@ #define glGetFragDataIndexEXTContextANGLE l_glGetFragDataIndexEXTContextANGLE #define glGetProgramResourceLocationIndexEXTContextANGLE \ l_glGetProgramResourceLocationIndexEXTContextANGLE +#define glBufferStorageEXTContextANGLE l_glBufferStorageEXTContextANGLE #define glInsertEventMarkerEXTContextANGLE l_glInsertEventMarkerEXTContextANGLE #define glPopGroupMarkerEXTContextANGLE l_glPopGroupMarkerEXTContextANGLE #define glPushGroupMarkerEXTContextANGLE l_glPushGroupMarkerEXTContextANGLE @@ -1942,6 +1944,7 @@ ANGLE_UTIL_EXPORT extern PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC l_glBindFragDat ANGLE_UTIL_EXPORT extern PFNGLGETFRAGDATAINDEXEXTPROC l_glGetFragDataIndexEXT; ANGLE_UTIL_EXPORT extern PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC l_glGetProgramResourceLocationIndexEXT; +ANGLE_UTIL_EXPORT extern PFNGLBUFFERSTORAGEEXTPROC l_glBufferStorageEXT; ANGLE_UTIL_EXPORT extern PFNGLINSERTEVENTMARKEREXTPROC l_glInsertEventMarkerEXT; ANGLE_UTIL_EXPORT extern PFNGLPOPGROUPMARKEREXTPROC l_glPopGroupMarkerEXT; ANGLE_UTIL_EXPORT extern PFNGLPUSHGROUPMARKEREXTPROC l_glPushGroupMarkerEXT; @@ -2811,6 +2814,7 @@ ANGLE_UTIL_EXPORT extern PFNGLGETFRAGDATAINDEXEXTCONTEXTANGLEPROC l_glGetFragDataIndexEXTContextANGLE; ANGLE_UTIL_EXPORT extern PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTCONTEXTANGLEPROC l_glGetProgramResourceLocationIndexEXTContextANGLE; +ANGLE_UTIL_EXPORT extern PFNGLBUFFERSTORAGEEXTCONTEXTANGLEPROC l_glBufferStorageEXTContextANGLE; ANGLE_UTIL_EXPORT extern PFNGLINSERTEVENTMARKEREXTCONTEXTANGLEPROC l_glInsertEventMarkerEXTContextANGLE; ANGLE_UTIL_EXPORT extern PFNGLPOPGROUPMARKEREXTCONTEXTANGLEPROC l_glPopGroupMarkerEXTContextANGLE;