summarylogtreecommitdiffstats
path: root/0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
diff options
context:
space:
mode:
authorAaron Plattner2016-06-06 15:40:33 -0700
committerAaron Plattner2016-06-06 15:43:38 -0700
commit527fba43a5628b8e2697ff253b162622e321b201 (patch)
tree38308204f797794fc0b30eb229b70550f340929b /0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
parent57673850b273dcf3db6c85abe9bc1d45d090eaf4 (diff)
downloadaur-527fba43a5628b8e2697ff253b162622e321b201.tar.gz
Update to Weston 1.11.0
Fetched patches from the nvidia_r364 branch of git://people.freedesktop.org/~jjones/weston and then rebased on top of the 1.11.0 tag. Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Diffstat (limited to '0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch')
-rw-r--r--0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch169
1 files changed, 0 insertions, 169 deletions
diff --git a/0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch b/0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
deleted file mode 100644
index 2c4528b94998..000000000000
--- a/0002-gl-renderer-Refactor-gl_renderer_output_window_creat.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From 1a6f5e3586cf62029a8bed8072bd41e845746bad Mon Sep 17 00:00:00 2001
-From: "Miguel A. Vico" <mvicomoya@nvidia.com>
-Date: Mon, 21 Mar 2016 17:37:32 +0100
-Subject: [PATCH 2/7] 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>
----
- src/gl-renderer.c | 91 +++++++++++++++++++++++++++++++++++++------------------
- 1 file changed, 62 insertions(+), 29 deletions(-)
-
-diff --git a/src/gl-renderer.c b/src/gl-renderer.c
-index 0c55e0b9ebd2..1d6d98c9b86b 100644
---- a/src/gl-renderer.c
-+++ b/src/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
-@@ -2546,24 +2547,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,
-+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)
- {
-- struct weston_compositor *ec = output->compositor;
-- struct gl_renderer *gr = get_renderer(ec);
-- struct gl_output_state *go;
-+ 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 &&
-@@ -2571,48 +2569,83 @@ 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;
- }
-
-- go = zalloc(sizeof *go);
-- if (go == NULL)
-- return -1;
-+ log_egl_config_info(gr->egl_display, egl_config);
-
-- 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 (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 weston_compositor *ec = output->compositor;
-+ struct gl_renderer *gr = get_renderer(ec);
-+ struct gl_output_state *go;
-+ int i;
-
-- if (go->egl_surface == EGL_NO_SURFACE) {
-+ if (surface == EGL_NO_SURFACE) {
- weston_log("failed to create egl surface\n");
-- free(go);
- return -1;
- }
-
- if (gr->egl_context == NULL)
-- if (gl_renderer_setup(ec, go->egl_surface) < 0) {
-- free(go);
-+ if (gl_renderer_setup(ec, surface) < 0) {
- return -1;
- }
-
-+ go = zalloc(sizeof *go);
-+ if (go == NULL)
-+ 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);
-+
-+ ret = gl_renderer_output_create(output, egl_surface);
-+ if (ret < 0 && egl_surface != EGL_NO_SURFACE)
-+ eglDestroySurface(gr->egl_display, egl_surface);
-+
-+ return ret;
-+}
-+
- static void
- gl_renderer_output_destroy(struct weston_output *output)
- {
---
-2.7.4
-