From ff1028b5450c77ec854a6bc855fe8d8613c281e1 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 16 Feb 2021 16:24:24 +0100 Subject: [PATCH] render/gles2: setup PBO extensions --- include/render/gles2.h | 5 +++++ render/gles2/renderer.c | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/render/gles2.h b/include/render/gles2.h index 714bacf56..c60159d67 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -48,6 +48,9 @@ struct wlr_gles2_renderer { bool EXT_texture_type_2_10_10_10_REV; bool OES_texture_half_float_linear; bool EXT_texture_norm16; + bool NV_pixel_buffer_object; + bool OES_mapbuffer; + bool EXT_map_buffer_range; } exts; struct { @@ -57,6 +60,8 @@ struct wlr_gles2_renderer { PFNGLPOPDEBUGGROUPKHRPROC glPopDebugGroupKHR; PFNGLPUSHDEBUGGROUPKHRPROC glPushDebugGroupKHR; PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC glEGLImageTargetRenderbufferStorageOES; + PFNGLMAPBUFFERRANGEEXTPROC glMapBufferRangeEXT; + PFNGLUNMAPBUFFEROESPROC glUnmapBufferOES; } procs; struct { diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index 5a2f31b55..c74df637c 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -780,6 +780,19 @@ struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl) { "glEGLImageTargetRenderbufferStorageOES"); } + renderer->exts.NV_pixel_buffer_object = + check_gl_ext(exts_str, "GL_NV_pixel_buffer_object"); + + if (check_gl_ext(exts_str, "GL_OES_mapbuffer")) { + renderer->exts.OES_mapbuffer = true; + load_gl_proc(&renderer->procs.glUnmapBufferOES, "glUnmapBufferOES"); + } + if (check_gl_ext(exts_str, "GL_EXT_map_buffer_range")) { + renderer->exts.EXT_map_buffer_range = true; + load_gl_proc(&renderer->procs.glMapBufferRangeEXT, + "glMapBufferRangeEXT"); + } + if (renderer->exts.KHR_debug) { glEnable(GL_DEBUG_OUTPUT_KHR); glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR);