diff options
author | Aaron Plattner | 2016-09-21 10:32:55 -0700 |
---|---|---|
committer | Aaron Plattner | 2016-09-21 11:17:26 -0700 |
commit | 41d80de186af84ee0c026369166eceadb3be3327 (patch) | |
tree | d45a11a563b7bbd174e4ad326f605f260eb46de0 /0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch | |
parent | 527fba43a5628b8e2697ff253b162622e321b201 (diff) | |
download | aur-41d80de186af84ee0c026369166eceadb3be3327.tar.gz |
Update to Weston 1.12.0
Diffstat (limited to '0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch')
-rw-r--r-- | 0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch | 109 |
1 files changed, 50 insertions, 59 deletions
diff --git a/0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch b/0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch index 72d9ef25c95f..7309529cda4b 100644 --- a/0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch +++ b/0008-gl-renderer-Add-support-for-EGLDevice-composited-fra.patch @@ -1,4 +1,4 @@ -From 13ffa3ad89037a8e686633468b762fb9b92c95c8 Mon Sep 17 00:00:00 2001 +From 4a84caec21fa650c8919db504dea94b3ad352a71 Mon Sep 17 00:00:00 2001 From: "Miguel A. Vico" <mvicomoya@nvidia.com> Date: Mon, 2 May 2016 16:34:01 +0200 Subject: [PATCH 08/11] gl-renderer: Add support for EGLDevice composited frame @@ -41,17 +41,19 @@ Signed-off-by: Miguel A Vico Moya <mvicomoya@nvidia.com> Reviewed-by: Andy Ritger <aritger@nvidia.com> Reviewed-by: Adam Cheney <acheney@nvidia.com> Reviewed-by: James Jones <jajones@nvidia.com> + +[aplattner@nvidia.com: rebased on top of Weston 1.12.0] --- - src/gl-renderer.c | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++- - src/gl-renderer.h | 19 ++++ - src/weston-egl-ext.h | 18 ++++ - 3 files changed, 285 insertions(+), 3 deletions(-) + libweston/gl-renderer.c | 251 ++++++++++++++++++++++++++++++++++++++++++++- + libweston/gl-renderer.h | 15 +++ + libweston/weston-egl-ext.h | 18 ++++ + 3 files changed, 281 insertions(+), 3 deletions(-) -diff --git a/src/gl-renderer.c b/src/gl-renderer.c -index 098440ce30a2..764bd880d743 100644 ---- a/src/gl-renderer.c -+++ b/src/gl-renderer.c -@@ -84,6 +84,8 @@ struct gl_output_state { +diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c +index b5d93531c944..01c5933966ca 100644 +--- a/libweston/gl-renderer.c ++++ b/libweston/gl-renderer.c +@@ -86,6 +86,8 @@ struct gl_output_state { struct gl_border_image borders[4]; enum gl_border_status border_status; @@ -60,9 +62,9 @@ index 098440ce30a2..764bd880d743 100644 struct weston_matrix output_matrix; }; -@@ -202,6 +204,27 @@ struct gl_renderer { +@@ -204,6 +206,27 @@ struct gl_renderer { - int has_configless_context; + int has_surfaceless_context; + PFNEGLGETOUTPUTLAYERSEXTPROC get_output_layers; + PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC query_output_layer_attrib; @@ -88,7 +90,7 @@ index 098440ce30a2..764bd880d743 100644 int has_dmabuf_import; struct wl_list dmabuf_images; -@@ -1193,6 +1216,37 @@ gl_renderer_repaint_output(struct weston_output *output, +@@ -1189,6 +1212,37 @@ gl_renderer_repaint_output(struct weston_output *output, } static int @@ -126,7 +128,7 @@ index 098440ce30a2..764bd880d743 100644 gl_renderer_read_pixels(struct weston_output *output, pixman_format_code_t format, void *pixels, uint32_t x, uint32_t y, -@@ -2587,9 +2641,92 @@ gl_renderer_create_window_surface(struct gl_renderer *gr, +@@ -2584,9 +2638,92 @@ gl_renderer_create_window_surface(struct gl_renderer *gr, return egl_surface; } @@ -218,9 +220,9 @@ index 098440ce30a2..764bd880d743 100644 + EGLSurface surface, + EGLStreamKHR stream) { - struct weston_compositor *ec = output->compositor; - struct gl_renderer *gr = get_renderer(ec); -@@ -2606,6 +2743,7 @@ gl_renderer_output_create(struct weston_output *output, + struct gl_output_state *go; + int i; +@@ -2596,6 +2733,7 @@ gl_renderer_output_create(struct weston_output *output, return -1; go->egl_surface = surface; @@ -228,7 +230,7 @@ index 098440ce30a2..764bd880d743 100644 for (i = 0; i < BUFFER_DAMAGE_COUNT; i++) pixman_region32_init(&go->buffer_damage[i]); -@@ -2638,13 +2776,41 @@ gl_renderer_output_window_create(struct weston_output *output, +@@ -2628,13 +2766,41 @@ gl_renderer_output_window_create(struct weston_output *output, return -1; } @@ -271,7 +273,7 @@ index 098440ce30a2..764bd880d743 100644 static void gl_renderer_output_destroy(struct weston_output *output) { -@@ -2657,6 +2823,9 @@ gl_renderer_output_destroy(struct weston_output *output) +@@ -2647,6 +2813,9 @@ gl_renderer_output_destroy(struct weston_output *output) eglDestroySurface(gr->egl_display, go->egl_surface); @@ -281,7 +283,7 @@ index 098440ce30a2..764bd880d743 100644 free(go); } -@@ -2761,6 +2930,19 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) +@@ -2728,6 +2897,19 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) (void *) eglGetProcAddress("eglUnbindWaylandDisplayWL"); gr->query_buffer = (void *) eglGetProcAddress("eglQueryWaylandBufferWL"); @@ -301,35 +303,35 @@ index 098440ce30a2..764bd880d743 100644 extensions = (const char *) eglQueryString(gr->egl_display, EGL_EXTENSIONS); -@@ -2802,6 +2984,27 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) +@@ -2766,6 +2948,27 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) + if (weston_check_egl_extension(extensions, "EGL_EXT_image_dma_buf_import")) gr->has_dmabuf_import = 1; - #endif -+ if (check_extension(extensions, "EGL_EXT_output_base")) ++ if (weston_check_egl_extension(extensions, "EGL_EXT_output_base")) + gr->has_egl_output_base = 1; + -+ if (check_extension(extensions, "EGL_EXT_output_drm")) ++ if (weston_check_egl_extension(extensions, "EGL_EXT_output_drm")) + gr->has_egl_output_drm = 1; + -+ if (check_extension(extensions, "EGL_NV_output_drm_flip_event")) ++ if (weston_check_egl_extension(extensions, "EGL_NV_output_drm_flip_event")) + gr->has_egl_output_drm_flip_event = 1; + -+ if (check_extension(extensions, "EGL_KHR_stream")) ++ if (weston_check_egl_extension(extensions, "EGL_KHR_stream")) + gr->has_egl_stream = 1; + -+ if (check_extension(extensions, "EGL_KHR_stream_producer_eglsurface")) ++ if (weston_check_egl_extension(extensions, "EGL_KHR_stream_producer_eglsurface")) + gr->has_egl_stream_producer_eglsurface = 1; + -+ if (check_extension(extensions, "EGL_EXT_stream_consumer_egloutput")) ++ if (weston_check_egl_extension(extensions, "EGL_EXT_stream_consumer_egloutput")) + gr->has_egl_stream_consumer_egloutput = 1; + -+ if (check_extension(extensions, "EGL_EXT_stream_acquire_mode")) ++ if (weston_check_egl_extension(extensions, "EGL_EXT_stream_acquire_mode")) + gr->has_egl_stream_acquire_mode = 1; + renderer_setup_egl_client_extensions(gr); return 0; -@@ -2827,6 +3030,16 @@ static const EGLint gl_renderer_alpha_attribs[] = { +@@ -2791,6 +2994,16 @@ static const EGLint gl_renderer_alpha_attribs[] = { EGL_NONE }; @@ -343,10 +345,10 @@ index 098440ce30a2..764bd880d743 100644 + EGL_NONE +}; + + /** Checks whether a platform EGL client extension is supported * - * \param ec The weston compositor -@@ -2899,6 +3112,8 @@ platform_to_extension(EGLenum platform) +@@ -2864,6 +3077,8 @@ platform_to_extension(EGLenum platform) return "wayland"; case EGL_PLATFORM_X11_KHR: return "x11"; @@ -355,7 +357,7 @@ index 098440ce30a2..764bd880d743 100644 default: assert(0 && "bad EGL platform enum"); } -@@ -2984,6 +3199,32 @@ gl_renderer_display_create(struct weston_compositor *ec, EGLenum platform, +@@ -3000,6 +3215,32 @@ gl_renderer_display_create(struct weston_compositor *ec, EGLenum platform, if (gl_renderer_setup_egl_extensions(ec) < 0) goto fail_with_error; @@ -388,7 +390,7 @@ index 098440ce30a2..764bd880d743 100644 wl_list_init(&gr->dmabuf_images); if (gr->has_dmabuf_import) gr->base.import_dmabuf = gl_renderer_import_dmabuf; -@@ -3260,15 +3501,19 @@ gl_renderer_get_drm_device_file(EGLDeviceEXT device, +@@ -3293,15 +3534,19 @@ gl_renderer_get_drm_device_file(EGLDeviceEXT device, WL_EXPORT struct gl_renderer_interface gl_renderer_interface = { .opaque_attribs = gl_renderer_opaque_attribs, .alpha_attribs = gl_renderer_alpha_attribs, @@ -409,22 +411,11 @@ index 098440ce30a2..764bd880d743 100644 + + .output_stream_flip = gl_renderer_output_stream_flip }; -diff --git a/src/gl-renderer.h b/src/gl-renderer.h -index f376edd80106..958caa19e38b 100644 ---- a/src/gl-renderer.h -+++ b/src/gl-renderer.h -@@ -62,6 +62,10 @@ typedef EGLSurface (*PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, - #define EGL_PLATFORM_X11_KHR 0x31D5 - #endif - -+#ifndef EGL_PLATFORM_DEVICE_EXT -+#define EGL_PLATFORM_DEVICE_EXT 0x313F -+#endif -+ - #define NO_EGL_PLATFORM 0 - - enum gl_renderer_border_side { -@@ -74,6 +78,7 @@ enum gl_renderer_border_side { +diff --git a/libweston/gl-renderer.h b/libweston/gl-renderer.h +index 871aa6589b01..02c79c355b47 100644 +--- a/libweston/gl-renderer.h ++++ b/libweston/gl-renderer.h +@@ -59,6 +59,7 @@ enum gl_renderer_border_side { struct gl_renderer_interface { const EGLint *opaque_attribs; const EGLint *alpha_attribs; @@ -432,7 +423,7 @@ index f376edd80106..958caa19e38b 100644 int (*display_create)(struct weston_compositor *ec, EGLenum platform, -@@ -92,6 +97,9 @@ struct gl_renderer_interface { +@@ -77,6 +78,9 @@ struct gl_renderer_interface { const EGLint *visual_id, const int n_ids); @@ -442,7 +433,7 @@ index f376edd80106..958caa19e38b 100644 void (*output_destroy)(struct weston_output *output); EGLSurface (*output_surface)(struct weston_output *output); -@@ -136,5 +144,16 @@ struct gl_renderer_interface { +@@ -121,5 +125,16 @@ struct gl_renderer_interface { int (*get_drm_device_file)(EGLDeviceEXT device, const char **drm_device_file); @@ -459,12 +450,12 @@ index f376edd80106..958caa19e38b 100644 + int (*output_stream_flip)(struct weston_output *output, void *flip_data); }; -diff --git a/src/weston-egl-ext.h b/src/weston-egl-ext.h -index 32f6108fbb83..6597e1143fea 100644 ---- a/src/weston-egl-ext.h -+++ b/src/weston-egl-ext.h -@@ -116,5 +116,23 @@ typedef struct wl_buffer * (EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL) ( - #define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +diff --git a/libweston/weston-egl-ext.h b/libweston/weston-egl-ext.h +index 6e3699602b5b..79aa2de2b09f 100644 +--- a/libweston/weston-egl-ext.h ++++ b/libweston/weston-egl-ext.h +@@ -152,5 +152,23 @@ typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLD + #define EGL_PLATFORM_X11_KHR 0x31D5 #endif +/* @@ -488,5 +479,5 @@ index 32f6108fbb83..6597e1143fea 100644 #endif -- -2.8.3 +2.10.0 |