summarylogtreecommitdiffstats
path: root/0003-gl-renderer-Implement-use-check_extension.patch
diff options
context:
space:
mode:
Diffstat (limited to '0003-gl-renderer-Implement-use-check_extension.patch')
-rw-r--r--0003-gl-renderer-Implement-use-check_extension.patch167
1 files changed, 0 insertions, 167 deletions
diff --git a/0003-gl-renderer-Implement-use-check_extension.patch b/0003-gl-renderer-Implement-use-check_extension.patch
deleted file mode 100644
index deed6e719faa..000000000000
--- a/0003-gl-renderer-Implement-use-check_extension.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From c513bd330d06c7e57ca294f5e3cf7f0824afefc4 Mon Sep 17 00:00:00 2001
-From: "Miguel A. Vico" <mvicomoya@nvidia.com>
-Date: Mon, 21 Mar 2016 17:37:33 +0100
-Subject: [PATCH 3/7] gl-renderer: Implement & use check_extension
-X-NVConfidentiality: public
-
-Using strstr(3) for checking for extensions is an error-prone mechanism
-as extension names can be prefixes of other extension names (see
-https://www.opengl.org/registry/doc/rules.html#using).
-
-This change implements the check_extension() function to properly check
-for an extension and replaces all usages of strstr(3).
-
-Signed-off-by: Miguel A Vico Moya <mvicomoya@nvidia.com>
-Reviewed-by: Andy Ritger <aritger@nvidia.com>
-Reviewed-by: Daniel Stone <daniels@collabora.com>
-[Pekka: move 'bool' to the same line with 'static']
-Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
-(cherry picked from commit cc3a192b448153a7911d44aa0fa549099607911d)
----
- src/gl-renderer.c | 56 +++++++++++++++++++++++++++++++++++++++++--------------
- 1 file changed, 42 insertions(+), 14 deletions(-)
-
-diff --git a/src/gl-renderer.c b/src/gl-renderer.c
-index 1d6d98c9b86b..887d131674f5 100644
---- a/src/gl-renderer.c
-+++ b/src/gl-renderer.c
-@@ -2701,6 +2701,34 @@ gl_renderer_destroy(struct weston_compositor *ec)
- free(gr);
- }
-
-+static bool
-+check_extension(const char *extensions, const char *extension)
-+{
-+ size_t extlen = strlen(extension);
-+ const char *end = extensions + strlen(extensions);
-+
-+ while (extensions < end) {
-+ size_t n = 0;
-+
-+ /* Skip whitespaces, if any */
-+ if (*extensions == ' ') {
-+ extensions++;
-+ continue;
-+ }
-+
-+ n = strcspn(extensions, " ");
-+
-+ /* Compare strings */
-+ if (n == extlen && strncmp(extension, extensions, n) == 0)
-+ return true; /* Found */
-+
-+ extensions += n;
-+ }
-+
-+ /* Not found */
-+ return false;
-+}
-+
- static void
- renderer_setup_egl_client_extensions(struct gl_renderer *gr)
- {
-@@ -2712,7 +2740,7 @@ renderer_setup_egl_client_extensions(struct gl_renderer *gr)
- return;
- }
-
-- if (strstr(extensions, "EGL_EXT_platform_base"))
-+ if (check_extension(extensions, "EGL_EXT_platform_base"))
- gr->create_platform_window =
- (void *) eglGetProcAddress("eglCreatePlatformWindowSurfaceEXT");
- else
-@@ -2742,7 +2770,7 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
- return -1;
- }
-
-- if (strstr(extensions, "EGL_WL_bind_wayland_display"))
-+ if (check_extension(extensions, "EGL_WL_bind_wayland_display"))
- gr->has_bind_display = 1;
- if (gr->has_bind_display) {
- ret = gr->bind_display(gr->egl_display, ec->wl_display);
-@@ -2750,14 +2778,14 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
- gr->has_bind_display = 0;
- }
-
-- if (strstr(extensions, "EGL_EXT_buffer_age"))
-+ if (check_extension(extensions, "EGL_EXT_buffer_age"))
- gr->has_egl_buffer_age = 1;
- else
- weston_log("warning: EGL_EXT_buffer_age not supported. "
- "Performance could be affected.\n");
-
- #ifdef EGL_EXT_swap_buffers_with_damage
-- if (strstr(extensions, "EGL_EXT_swap_buffers_with_damage"))
-+ if (check_extension(extensions, "EGL_EXT_swap_buffers_with_damage"))
- gr->swap_buffers_with_damage =
- (void *) eglGetProcAddress("eglSwapBuffersWithDamageEXT");
- else
-@@ -2766,12 +2794,12 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
- #endif
-
- #ifdef EGL_MESA_configless_context
-- if (strstr(extensions, "EGL_MESA_configless_context"))
-+ if (check_extension(extensions, "EGL_MESA_configless_context"))
- gr->has_configless_context = 1;
- #endif
-
- #ifdef EGL_EXT_image_dma_buf_import
-- if (strstr(extensions, "EGL_EXT_image_dma_buf_import"))
-+ if (check_extension(extensions, "EGL_EXT_image_dma_buf_import"))
- gr->has_dmabuf_import = 1;
- #endif
-
-@@ -2840,19 +2868,19 @@ gl_renderer_supports(struct weston_compositor *ec,
- extensions);
- }
-
-- if (!strstr(extensions, "EGL_EXT_platform_base"))
-+ if (!check_extension(extensions, "EGL_EXT_platform_base"))
- return 0;
-
- snprintf(s, sizeof s, "EGL_KHR_platform_%s", extension_suffix);
-- if (strstr(extensions, s))
-+ if (check_extension(extensions, s))
- return 1;
-
- snprintf(s, sizeof s, "EGL_EXT_platform_%s", extension_suffix);
-- if (strstr(extensions, s))
-+ if (check_extension(extensions, s))
- return 1;
-
- snprintf(s, sizeof s, "EGL_MESA_platform_%s", extension_suffix);
-- if (strstr(extensions, s))
-+ if (check_extension(extensions, s))
- return 1;
-
- /* at this point we definitely have some platform extensions but
-@@ -3104,22 +3132,22 @@ gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface)
- return -1;
- }
-
-- if (!strstr(extensions, "GL_EXT_texture_format_BGRA8888")) {
-+ if (!check_extension(extensions, "GL_EXT_texture_format_BGRA8888")) {
- weston_log("GL_EXT_texture_format_BGRA8888 not available\n");
- return -1;
- }
-
-- if (strstr(extensions, "GL_EXT_read_format_bgra"))
-+ if (check_extension(extensions, "GL_EXT_read_format_bgra"))
- ec->read_format = PIXMAN_a8r8g8b8;
- else
- ec->read_format = PIXMAN_a8b8g8r8;
-
- #ifdef GL_EXT_unpack_subimage
-- if (strstr(extensions, "GL_EXT_unpack_subimage"))
-+ if (check_extension(extensions, "GL_EXT_unpack_subimage"))
- gr->has_unpack_subimage = 1;
- #endif
-
-- if (strstr(extensions, "GL_OES_EGL_image_external"))
-+ if (check_extension(extensions, "GL_OES_EGL_image_external"))
- gr->has_egl_image_external = 1;
-
- glActiveTexture(GL_TEXTURE0);
---
-2.7.4
-