diff options
Diffstat (limited to '0009-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch')
-rw-r--r-- | 0009-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/0009-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch b/0009-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch index 52f93c374617..c802e157a4d4 100644 --- a/0009-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch +++ b/0009-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch @@ -1,4 +1,4 @@ -From 1b660d12f9586b8d7b58fc0d18a22728febaf727 Mon Sep 17 00:00:00 2001 +From c3a7bff36253229bfbfed8c72a82f334819ba3e5 Mon Sep 17 00:00:00 2001 From: "Miguel A. Vico" <mvicomoya@nvidia.com> Date: Mon, 2 May 2016 18:22:47 +0200 Subject: [PATCH 09/11] gl-renderer: Add EGL client support for EGLStream frame @@ -23,23 +23,25 @@ Note that some unpublished EGL extensions were needed: Signed-off-by: Miguel A Vico Moya <mvicomoya@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 | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++- + libweston/gl-renderer.c | 175 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 174 insertions(+), 1 deletion(-) -diff --git a/src/gl-renderer.c b/src/gl-renderer.c -index 764bd880d743..608f4bf4cb92 100644 ---- a/src/gl-renderer.c -+++ b/src/gl-renderer.c +diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c +index 01c5933966ca..be0c5e9b4745 100644 +--- a/libweston/gl-renderer.c ++++ b/libweston/gl-renderer.c @@ -30,6 +30,7 @@ #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> +#include <unistd.h> #include <stdbool.h> + #include <stdint.h> #include <stdlib.h> - #include <string.h> -@@ -161,6 +162,9 @@ struct gl_surface_state { +@@ -163,6 +164,9 @@ struct gl_surface_state { int height; /* in pixels */ int y_inverted; @@ -49,7 +51,7 @@ index 764bd880d743..608f4bf4cb92 100644 struct weston_surface *surface; struct wl_listener surface_destroy_listener; -@@ -212,6 +216,7 @@ struct gl_renderer { +@@ -214,6 +218,7 @@ struct gl_renderer { PFNEGLCREATESTREAMKHRPROC create_stream; PFNEGLDESTROYSTREAMKHRPROC destroy_stream; @@ -57,7 +59,7 @@ index 764bd880d743..608f4bf4cb92 100644 int has_egl_stream; PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC create_stream_producer_surface; -@@ -225,6 +230,13 @@ struct gl_renderer { +@@ -227,6 +232,13 @@ struct gl_renderer { #endif int has_egl_stream_acquire_mode; @@ -71,7 +73,7 @@ index 764bd880d743..608f4bf4cb92 100644 int has_dmabuf_import; struct wl_list dmabuf_images; -@@ -1937,6 +1949,132 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface, +@@ -1934,6 +1946,132 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface, gs->y_inverted = buffer->y_inverted; } @@ -204,7 +206,7 @@ index 764bd880d743..608f4bf4cb92 100644 static void gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) { -@@ -1960,6 +2098,12 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) +@@ -1957,6 +2095,12 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) gs->num_textures = 0; gs->buffer_type = BUFFER_TYPE_NULL; gs->y_inverted = 1; @@ -217,7 +219,7 @@ index 764bd880d743..608f4bf4cb92 100644 return; } -@@ -1972,7 +2116,7 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) +@@ -1969,7 +2113,7 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) gl_renderer_attach_egl(es, buffer, format); else if ((dmabuf = linux_dmabuf_buffer_get(buffer->resource))) gl_renderer_attach_dmabuf(es, buffer, dmabuf); @@ -226,7 +228,7 @@ index 764bd880d743..608f4bf4cb92 100644 weston_log("unhandled buffer type!\n"); weston_buffer_reference(&gs->buffer_ref, NULL); gs->buffer_type = BUFFER_TYPE_NULL; -@@ -2160,6 +2304,10 @@ surface_state_destroy(struct gl_surface_state *gs, struct gl_renderer *gr) +@@ -2157,6 +2301,10 @@ surface_state_destroy(struct gl_surface_state *gs, struct gl_renderer *gr) weston_buffer_reference(&gs->buffer_ref, NULL); pixman_region32_fini(&gs->texture_damage); @@ -237,7 +239,7 @@ index 764bd880d743..608f4bf4cb92 100644 free(gs); } -@@ -2210,6 +2358,8 @@ gl_renderer_create_surface(struct weston_surface *surface) +@@ -2207,6 +2355,8 @@ gl_renderer_create_surface(struct weston_surface *surface) gs->surface = surface; @@ -246,7 +248,7 @@ index 764bd880d743..608f4bf4cb92 100644 pixman_region32_init(&gs->texture_damage); surface->renderer_state = gs; -@@ -2935,6 +3085,7 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) +@@ -2902,6 +3052,7 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) (void *) eglGetProcAddress("eglQueryOutputLayerAttribEXT"); gr->create_stream = (void *) eglGetProcAddress("eglCreateStreamKHR"); gr->destroy_stream = (void *) eglGetProcAddress("eglDestroyStreamKHR"); @@ -254,7 +256,7 @@ index 764bd880d743..608f4bf4cb92 100644 gr->create_stream_producer_surface = (void *) eglGetProcAddress("eglCreateStreamProducerSurfaceKHR"); gr->stream_consumer_output = -@@ -2943,6 +3094,12 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) +@@ -2910,6 +3061,12 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) gr->stream_consumer_acquire_attrib = (void *) eglGetProcAddress("eglStreamConsumerAcquireAttribEXT"); #endif @@ -267,20 +269,20 @@ index 764bd880d743..608f4bf4cb92 100644 extensions = (const char *) eglQueryString(gr->egl_display, EGL_EXTENSIONS); -@@ -3005,6 +3162,12 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) - if (check_extension(extensions, "EGL_EXT_stream_acquire_mode")) +@@ -2969,6 +3126,12 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) + if (weston_check_egl_extension(extensions, "EGL_EXT_stream_acquire_mode")) gr->has_egl_stream_acquire_mode = 1; -+ if (check_extension(extensions, "EGL_KHR_stream_consumer_gltexture")) ++ if (weston_check_egl_extension(extensions, "EGL_KHR_stream_consumer_gltexture")) + gr->has_egl_stream_consumer_gltexture = 1; + -+ if (check_extension(extensions, "EGL_KHR_stream_cross_process_fd")) ++ if (weston_check_egl_extension(extensions, "EGL_KHR_stream_cross_process_fd")) + gr->has_egl_stream_cross_process_fd = 1; + renderer_setup_egl_client_extensions(gr); return 0; -@@ -3220,6 +3383,16 @@ gl_renderer_display_create(struct weston_compositor *ec, EGLenum platform, +@@ -3236,6 +3399,16 @@ gl_renderer_display_create(struct weston_compositor *ec, EGLenum platform, goto fail_terminate; } @@ -298,5 +300,5 @@ index 764bd880d743..608f4bf4cb92 100644 weston_log("warning: EGL page flip event notification not" " supported\n"); -- -2.8.3 +2.10.0 |