gl-renderer: add EGL surfaceless platform support
This allows passing EGL_PLATFORM_SURFACELESS_MESA to gl_renderer_display_create(). It is not useful on its own, because the surfaceless platform has no window surfaces. This feature will be used by the headless backend. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
committed by
Pekka Paalanen
parent
53b7fd70b8
commit
ecdf50d38e
@@ -3303,6 +3303,8 @@ platform_to_extension(EGLenum platform)
|
|||||||
return "wayland";
|
return "wayland";
|
||||||
case EGL_PLATFORM_X11_KHR:
|
case EGL_PLATFORM_X11_KHR:
|
||||||
return "x11";
|
return "x11";
|
||||||
|
case EGL_PLATFORM_SURFACELESS_MESA:
|
||||||
|
return "surfaceless";
|
||||||
default:
|
default:
|
||||||
assert(0 && "bad EGL platform enum");
|
assert(0 && "bad EGL platform enum");
|
||||||
}
|
}
|
||||||
@@ -3369,6 +3371,10 @@ gl_renderer_display_create(struct weston_compositor *ec,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Surfaceless is unusable without platform_base extension */
|
||||||
|
if (supports == 0 && platform == EGL_PLATFORM_SURFACELESS_MESA)
|
||||||
|
return -1;
|
||||||
|
|
||||||
gr = zalloc(sizeof *gr);
|
gr = zalloc(sizeof *gr);
|
||||||
if (gr == NULL)
|
if (gr == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -176,6 +176,10 @@ typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLD
|
|||||||
#define EGL_PLATFORM_X11_KHR 0x31D5
|
#define EGL_PLATFORM_X11_KHR 0x31D5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EGL_PLATFORM_SURFACELESS_MESA
|
||||||
|
#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef EGL_KHR_cl_event2
|
#ifndef EGL_KHR_cl_event2
|
||||||
#define EGL_KHR_cl_event2 1
|
#define EGL_KHR_cl_event2 1
|
||||||
typedef void *EGLSyncKHR;
|
typedef void *EGLSyncKHR;
|
||||||
@@ -210,6 +214,7 @@ typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy,
|
|||||||
#define EGL_PLATFORM_GBM_KHR 0x31D7
|
#define EGL_PLATFORM_GBM_KHR 0x31D7
|
||||||
#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
|
#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
|
||||||
#define EGL_PLATFORM_X11_KHR 0x31D5
|
#define EGL_PLATFORM_X11_KHR 0x31D5
|
||||||
|
#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||||
|
|
||||||
#endif /* ENABLE_EGL */
|
#endif /* ENABLE_EGL */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user