summarylogtreecommitdiffstats
path: root/0009-gl-renderer-Try-realizing-EGLStream-before-EGLImage-.patch
blob: 7423e1e26b1ac4bb34ee756ff7e92396345bcd63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From ef60350defbf06da7d37352a31e6a80a2f732ebe Mon Sep 17 00:00:00 2001
From: Erik Kurzinger <ekurzinger@nvidia.com>
Date: Fri, 12 Apr 2019 21:31:46 +0000
Subject: [PATCH 09/10] gl-renderer: Try realizing EGLStream before EGLImage
 buffer
X-NVConfidentiality: public

Currently, it is assumed that if querying the EGL_TEXTURE_FORMAT of a
Wayland buffer succeeds it is an EGLImage. However, this assumption will no
longer hold on upcoming versions of the NVIDIA EGL Wayland driver which
will include support for querying this attribute for EGLStream buffers as
well. Hence, we need to check if buffers are EGLStreams first.
---
 libweston/gl-renderer.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
index 8265a712..c1a88a11 100644
--- a/libweston/gl-renderer.c
+++ b/libweston/gl-renderer.c
@@ -2752,13 +2752,14 @@ gl_renderer_attach(struct weston_surface *es, struct weston_buffer *buffer)
 
 	if (shm_buffer)
 		gl_renderer_attach_shm(es, buffer, shm_buffer);
+	else if (gl_renderer_attach_stream_texture(es, buffer));
 	else if (gr->has_bind_display &&
 		 gr->query_buffer(gr->egl_display, (void *)buffer->resource,
 				  EGL_TEXTURE_FORMAT, &format))
 		gl_renderer_attach_egl(es, buffer, format);
 	else if ((dmabuf = linux_dmabuf_buffer_get(buffer->resource)))
 		gl_renderer_attach_dmabuf(es, buffer, dmabuf);
-	else if (!gl_renderer_attach_stream_texture(es, buffer)) {
+	else {
 		weston_log("unhandled buffer type!\n");
 		if (gr->has_bind_display) {
 		  weston_log("eglQueryWaylandBufferWL failed\n");
-- 
2.21.0