summarylogtreecommitdiffstats
path: root/0006-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
diff options
context:
space:
mode:
Diffstat (limited to '0006-gl-renderer-Refactor-gl_renderer_output_window_creat.patch')
-rw-r--r--0006-gl-renderer-Refactor-gl_renderer_output_window_creat.patch168
1 files changed, 0 insertions, 168 deletions
diff --git a/0006-gl-renderer-Refactor-gl_renderer_output_window_creat.patch b/0006-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
deleted file mode 100644
index 314b2cfded5e..000000000000
--- a/0006-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From c481d05b7284ec9a8d46267052b773b44043905a Mon Sep 17 00:00:00 2001
-From: "Miguel A. Vico" <mvicomoya@nvidia.com>
-Date: Fri, 26 Feb 2016 15:44:59 +0100
-Subject: [PATCH 06/12] gl-renderer: Refactor
- gl_renderer_output_window_create()
-X-NVConfidentiality: public
-
-In preparation for follow-on changes to support frame presentation
-through EGLDevice+EGLOutput, this change refactors
-gl_renderer_output_window_create() to separate out window surface
-creation code from output common creation code.
-
-Bonus: Fix EGLSurface leakage upon gl_renderer_setup() failure.
-
-Signed-off-by: Miguel A Vico Moya <mvicomoya@nvidia.com>
-Reviewed-by: Andy Ritger <aritger@nvidia.com>
-Reviewed-by: James Jones <jajones@nvidia.com>
----
- libweston/gl-renderer.c | 99 ++++++++++++++++++++++++++++++++-----------------
- 1 file changed, 65 insertions(+), 34 deletions(-)
-
-diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
-index 3ffd0dd8e3b7..508f8b92797e 100644
---- a/libweston/gl-renderer.c
-+++ b/libweston/gl-renderer.c
-@@ -1,6 +1,7 @@
- /*
- * Copyright © 2012 Intel Corporation
- * Copyright © 2015 Collabora, Ltd.
-+ * Copyright © 2016 NVIDIA Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
-@@ -2543,24 +2544,21 @@ gl_renderer_output_set_border(struct weston_output *output,
- static int
- gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface);
-
--static int
--gl_renderer_output_window_create(struct weston_output *output,
-- EGLNativeWindowType window_for_legacy,
-- void *window_for_platform,
-- const EGLint *config_attribs,
-- const EGLint *visual_id,
-- int n_ids)
--{
-- struct weston_compositor *ec = output->compositor;
-- struct gl_renderer *gr = get_renderer(ec);
-- struct gl_output_state *go;
-+static EGLSurface
-+gl_renderer_create_window_surface(struct gl_renderer *gr,
-+ EGLNativeWindowType window_for_legacy,
-+ void *window_for_platform,
-+ const EGLint *config_attribs,
-+ const EGLint *visual_id,
-+ int n_ids)
-+{
-+ EGLSurface egl_surface = EGL_NO_SURFACE;
- EGLConfig egl_config;
-- int i;
-
- if (egl_choose_config(gr, config_attribs, visual_id,
- n_ids, &egl_config) == -1) {
- weston_log("failed to choose EGL config for output\n");
-- return -1;
-+ return EGL_NO_SURFACE;
- }
-
- if (egl_config != gr->egl_config &&
-@@ -2568,42 +2566,75 @@ gl_renderer_output_window_create(struct weston_output *output,
- weston_log("attempted to use a different EGL config for an "
- "output but EGL_MESA_configless_context is not "
- "supported\n");
-- return -1;
-+ return EGL_NO_SURFACE;
- }
-
-+ log_egl_config_info(gr->egl_display, egl_config);
-+
-+ if (gr->create_platform_window)
-+ egl_surface = gr->create_platform_window(gr->egl_display,
-+ egl_config,
-+ window_for_platform,
-+ NULL);
-+ else
-+ egl_surface = eglCreateWindowSurface(gr->egl_display,
-+ egl_config,
-+ window_for_legacy, NULL);
-+
-+ return egl_surface;
-+}
-+
-+static int
-+gl_renderer_output_create(struct weston_output *output,
-+ EGLSurface surface)
-+{
-+ struct gl_output_state *go;
-+ int i;
-+
- go = zalloc(sizeof *go);
- if (go == NULL)
- return -1;
-
-- if (gr->create_platform_window) {
-- go->egl_surface =
-- gr->create_platform_window(gr->egl_display,
-- egl_config,
-- window_for_platform,
-- NULL);
-- } else {
-- go->egl_surface =
-- eglCreateWindowSurface(gr->egl_display,
-- egl_config,
-- window_for_legacy, NULL);
-- }
--
-- if (go->egl_surface == EGL_NO_SURFACE) {
-- weston_log("failed to create egl surface\n");
-- free(go);
-- return -1;
-- }
-+ go->egl_surface = surface;
-
- for (i = 0; i < BUFFER_DAMAGE_COUNT; i++)
- pixman_region32_init(&go->buffer_damage[i]);
-
- output->renderer_state = go;
-
-- log_egl_config_info(gr->egl_display, egl_config);
--
- return 0;
- }
-
-+static int
-+gl_renderer_output_window_create(struct weston_output *output,
-+ EGLNativeWindowType window_for_legacy,
-+ void *window_for_platform,
-+ const EGLint *config_attribs,
-+ const EGLint *visual_id,
-+ int n_ids)
-+{
-+ struct weston_compositor *ec = output->compositor;
-+ struct gl_renderer *gr = get_renderer(ec);
-+ EGLSurface egl_surface = EGL_NO_SURFACE;
-+ int ret = 0;
-+
-+ egl_surface = gl_renderer_create_window_surface(gr,
-+ window_for_legacy,
-+ window_for_platform,
-+ config_attribs,
-+ visual_id, n_ids);
-+ if (egl_surface == EGL_NO_SURFACE) {
-+ weston_log("failed to create egl surface\n");
-+ return -1;
-+ }
-+
-+ ret = gl_renderer_output_create(output, egl_surface);
-+ if (ret < 0)
-+ eglDestroySurface(gr->egl_display, egl_surface);
-+
-+ return ret;
-+}
-+
- static void
- gl_renderer_output_destroy(struct weston_output *output)
- {
---
-2.10.2
-