mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2025-12-25 17:40:11 +01:00
gl-renderer: check for EGL_KHR_image_base extension
Get eglCreateImageKHR() and eglDestroyImageKHR() function addresses depending on EGL_KHR_image_base availability. Signed-off-by: Loïc Molinari <loic.molinari@collabora.com>
This commit is contained in:
parent
3d0d850980
commit
d38f45c6b6
2 changed files with 17 additions and 10 deletions
|
|
@ -78,6 +78,7 @@ static const struct gl_extension_table display_table[] = {
|
|||
EXT("EGL_EXT_swap_buffers_with_damage", EXTENSION_EXT_SWAP_BUFFERS_WITH_DAMAGE),
|
||||
EXT("EGL_IMG_context_priority", EXTENSION_IMG_CONTEXT_PRIORITY),
|
||||
EXT("EGL_KHR_fence_sync", EXTENSION_KHR_FENCE_SYNC),
|
||||
EXT("EGL_KHR_image_base", EXTENSION_KHR_IMAGE_BASE),
|
||||
EXT("EGL_KHR_no_config_context", EXTENSION_KHR_NO_CONFIG_CONTEXT),
|
||||
EXT("EGL_KHR_partial_update", EXTENSION_KHR_PARTIAL_UPDATE),
|
||||
EXT("EGL_KHR_surfaceless_context", EXTENSION_KHR_SURFACELESS_CONTEXT),
|
||||
|
|
@ -650,9 +651,6 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
|
|||
bool has_bind_display = false;
|
||||
const char *extensions;
|
||||
|
||||
GET_PROC_ADDRESS(gr->create_image, "eglCreateImageKHR");
|
||||
GET_PROC_ADDRESS(gr->destroy_image, "eglDestroyImageKHR");
|
||||
|
||||
GET_PROC_ADDRESS(gr->bind_display, "eglBindWaylandDisplayWL");
|
||||
GET_PROC_ADDRESS(gr->unbind_display, "eglUnbindWaylandDisplayWL");
|
||||
GET_PROC_ADDRESS(gr->query_buffer, "eglQueryWaylandBufferWL");
|
||||
|
|
@ -668,6 +666,14 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec)
|
|||
gl_extensions_add(display_table, extensions,
|
||||
&gr->egl_display_extensions);
|
||||
|
||||
/* eglCreateImage() and eglDestroyImage() from EGL 1.5 could be used
|
||||
* instead when available but the type of the attribute list passed to
|
||||
* eglCreateImage() is different and Mesa does a conversion anyway. */
|
||||
if (egl_display_has(gr, EXTENSION_KHR_IMAGE_BASE)) {
|
||||
GET_PROC_ADDRESS(gr->create_image, "eglCreateImageKHR");
|
||||
GET_PROC_ADDRESS(gr->destroy_image, "eglDestroyImageKHR");
|
||||
}
|
||||
|
||||
if (egl_display_has(gr, EXTENSION_WL_BIND_WAYLAND_DISPLAY))
|
||||
has_bind_display = gr->bind_display(gr->egl_display,
|
||||
ec->wl_display);
|
||||
|
|
|
|||
|
|
@ -89,13 +89,14 @@ enum egl_display_extension_flag {
|
|||
EXTENSION_EXT_SWAP_BUFFERS_WITH_DAMAGE = 1ull << 4,
|
||||
EXTENSION_IMG_CONTEXT_PRIORITY = 1ull << 5,
|
||||
EXTENSION_KHR_FENCE_SYNC = 1ull << 6,
|
||||
EXTENSION_KHR_NO_CONFIG_CONTEXT = 1ull << 7,
|
||||
EXTENSION_KHR_PARTIAL_UPDATE = 1ull << 8,
|
||||
EXTENSION_KHR_SURFACELESS_CONTEXT = 1ull << 9,
|
||||
EXTENSION_KHR_SWAP_BUFFERS_WITH_DAMAGE = 1ull << 10,
|
||||
EXTENSION_KHR_WAIT_SYNC = 1ull << 11,
|
||||
EXTENSION_MESA_CONFIGLESS_CONTEXT = 1ull << 12,
|
||||
EXTENSION_WL_BIND_WAYLAND_DISPLAY = 1ull << 13,
|
||||
EXTENSION_KHR_IMAGE_BASE = 1ull << 7,
|
||||
EXTENSION_KHR_NO_CONFIG_CONTEXT = 1ull << 8,
|
||||
EXTENSION_KHR_PARTIAL_UPDATE = 1ull << 9,
|
||||
EXTENSION_KHR_SURFACELESS_CONTEXT = 1ull << 10,
|
||||
EXTENSION_KHR_SWAP_BUFFERS_WITH_DAMAGE = 1ull << 11,
|
||||
EXTENSION_KHR_WAIT_SYNC = 1ull << 12,
|
||||
EXTENSION_MESA_CONFIGLESS_CONTEXT = 1ull << 13,
|
||||
EXTENSION_WL_BIND_WAYLAND_DISPLAY = 1ull << 14,
|
||||
};
|
||||
|
||||
enum gl_feature_flag {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue