diff options
Diffstat (limited to '0003-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch')
-rw-r--r-- | 0003-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/0003-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch b/0003-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch index 387031d8e989..3b385346c138 100644 --- a/0003-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch +++ b/0003-gl-renderer-Add-EGL-client-support-for-EGLStream-fra.patch @@ -1,4 +1,4 @@ -From 720e02507651efefe3a4a42077f719dd9f74b07c Mon Sep 17 00:00:00 2001 +From ef918a27b0134d44d680c2cd034a1b50a87edc3e Mon Sep 17 00:00:00 2001 From: "Miguel A. Vico" <mvicomoya@nvidia.com> Date: Thu, 29 Mar 2018 00:15:49 -0700 Subject: [PATCH 3/6] gl-renderer: Add EGL client support for EGLStream frame @@ -28,14 +28,14 @@ Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> Reviewed-by: Adam Cheney <acheney@nvidia.com> Reviewed-by: James Jones <jajones@nvidia.com> --- - libweston/gl-renderer.c | 184 ++++++++++++++++++++++++++++++++++++++++ - shared/weston-egl-ext.h | 5 ++ + libweston/renderer-gl/gl-renderer.c | 184 ++++++++++++++++++++++++++++ + shared/weston-egl-ext.h | 5 + 2 files changed, 189 insertions(+) -diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c -index f3fb2c65..4bae6546 100644 ---- a/libweston/gl-renderer.c -+++ b/libweston/gl-renderer.c +diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c +index 215ed9b3..22a64f81 100644 +--- a/libweston/renderer-gl/gl-renderer.c ++++ b/libweston/renderer-gl/gl-renderer.c @@ -189,6 +189,9 @@ struct gl_surface_state { int hsub[3]; /* horizontal subsampling per plane */ int vsub[3]; /* vertical subsampling per plane */ @@ -46,32 +46,32 @@ index f3fb2c65..4bae6546 100644 struct weston_surface *surface; /* Whether this surface was used in the current output repaint. -@@ -248,6 +251,7 @@ struct gl_renderer { +@@ -253,6 +256,7 @@ struct gl_renderer { PFNEGLCREATESTREAMKHRPROC create_stream; PFNEGLDESTROYSTREAMKHRPROC destroy_stream; + PFNEGLQUERYSTREAMKHRPROC query_stream; - int has_egl_stream; + bool has_egl_stream; PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC create_stream_producer_surface; -@@ -257,11 +261,16 @@ struct gl_renderer { - int has_egl_stream_consumer_egloutput; +@@ -262,11 +266,16 @@ struct gl_renderer { + bool has_egl_stream_consumer_egloutput; #ifdef EGL_NV_stream_attrib + PFNEGLCREATESTREAMATTRIBNVPROC create_stream_attrib; PFNEGLSTREAMCONSUMERACQUIREATTRIBNVPROC stream_consumer_acquire_attrib; #endif - int has_egl_stream_attrib; - int has_egl_stream_acquire_mode; + bool has_egl_stream_attrib; + bool has_egl_stream_acquire_mode; + PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC stream_consumer_gltexture; -+ int has_egl_stream_consumer_gltexture; -+ int has_egl_wayland_eglstream; ++ bool has_egl_stream_consumer_gltexture; ++ bool has_egl_wayland_eglstream; + - int has_dmabuf_import; - struct wl_list dmabuf_images; + bool has_gl_texture_rg; -@@ -2528,6 +2537,145 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface, + struct gl_shader texture_shader_rgba; +@@ -2617,6 +2626,145 @@ gl_renderer_attach_dmabuf(struct weston_surface *surface, surface->is_opaque = dmabuf_is_opaque(dmabuf); } @@ -217,9 +217,9 @@ index f3fb2c65..4bae6546 100644 static void gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) { -@@ -2554,6 +2702,12 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) +@@ -2643,6 +2791,12 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) gs->buffer_type = BUFFER_TYPE_NULL; - gs->y_inverted = 1; + gs->y_inverted = true; es->is_opaque = false; + + if (gs->egl_stream != EGL_NO_STREAM_KHR) { @@ -230,7 +230,7 @@ index f3fb2c65..4bae6546 100644 return; } -@@ -2561,6 +2715,9 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) +@@ -2650,6 +2804,9 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer) if (shm_buffer) gl_renderer_attach_shm(es, buffer, shm_buffer); @@ -240,7 +240,7 @@ index f3fb2c65..4bae6546 100644 else if (gr->has_bind_display && gr->query_buffer(gr->egl_display, (void *)buffer->resource, EGL_TEXTURE_FORMAT, &format)) -@@ -2764,6 +2921,10 @@ surface_state_destroy(struct gl_surface_state *gs, struct gl_renderer *gr) +@@ -2853,6 +3010,10 @@ surface_state_destroy(struct gl_surface_state *gs, struct gl_renderer *gr) weston_buffer_reference(&gs->buffer_ref, NULL); weston_buffer_release_reference(&gs->buffer_release_ref, NULL); pixman_region32_fini(&gs->texture_damage); @@ -251,7 +251,7 @@ index f3fb2c65..4bae6546 100644 free(gs); } -@@ -2814,6 +2975,8 @@ gl_renderer_create_surface(struct weston_surface *surface) +@@ -2903,6 +3064,8 @@ gl_renderer_create_surface(struct weston_surface *surface) gs->surface = surface; @@ -260,7 +260,7 @@ index f3fb2c65..4bae6546 100644 pixman_region32_init(&gs->texture_damage); surface->renderer_state = gs; -@@ -3570,14 +3733,19 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) +@@ -3661,14 +3824,19 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) (void *) eglGetProcAddress("eglQueryOutputLayerAttribEXT"); gr->create_stream = (void *) eglGetProcAddress("eglCreateStreamKHR"); gr->destroy_stream = (void *) eglGetProcAddress("eglDestroyStreamKHR"); @@ -280,20 +280,20 @@ index f3fb2c65..4bae6546 100644 extensions = (const char *) eglQueryString(gr->egl_display, EGL_EXTENSIONS); -@@ -3676,6 +3844,12 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) +@@ -3770,6 +3938,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; + gr->has_egl_stream_acquire_mode = true; + if (weston_check_egl_extension(extensions, "EGL_KHR_stream_consumer_gltexture")) -+ gr->has_egl_stream_consumer_gltexture = 1; ++ gr->has_egl_stream_consumer_gltexture = true; + + if (weston_check_egl_extension(extensions, "EGL_WL_wayland_eglstream")) -+ gr->has_egl_wayland_eglstream = 1; ++ gr->has_egl_wayland_eglstream = true; + renderer_setup_egl_client_extensions(gr); return 0; -@@ -3953,6 +4127,16 @@ gl_renderer_display_create(struct weston_compositor *ec, EGLenum platform, +@@ -4047,6 +4221,16 @@ gl_renderer_display_create(struct weston_compositor *ec, EGLenum platform, goto fail_terminate; } |