diff options
author | Simon Ser <contact@emersion.fr> | 2022-10-10 09:25:33 +0200 |
---|---|---|
committer | Alexander Orzechowski <orzechowski.alexander@gmail.com> | 2022-10-10 07:54:35 +0000 |
commit | 954974950726f3b6dbc8c5341722c942eade07f1 (patch) | |
tree | 088ed4c64ff3532347b29c8d836323f1cbdaa646 | |
parent | f216e979836a25adca4656583ae5fb9db06be00c (diff) |
render/gles2: assert that GL_OES_EGL_image_external is supported
The target is set to GL_TEXTURE_EXTERNAL_OES when
EGL_EXT_image_dma_buf_import_modifiers [1] returns an external_only
flag. That spec states:
> In order to support imports for the GL_TEXTURE_EXTERNAL_OES target, a
> compatible OpenGL ES implementation supporting GL_OES_EGL_image_external
> must be present.
Fail hearder when a driver doesn't follow the spec instead of
skipping rendering.
See [2].
[1]: https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
[2]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3631#note_1584343
-rw-r--r-- | render/gles2/renderer.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index 354584e5..b1543cdd 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -267,13 +267,10 @@ static bool gles2_render_subtexture_with_matrix( } break; case GL_TEXTURE_EXTERNAL_OES: + // EGL_EXT_image_dma_buf_import_modifiers requires + // GL_OES_EGL_image_external + assert(renderer->exts.OES_egl_image_external); shader = &renderer->shaders.tex_ext; - - if (!renderer->exts.OES_egl_image_external) { - wlr_log(WLR_ERROR, "Failed to render texture: " - "GL_TEXTURE_EXTERNAL_OES not supported"); - return false; - } break; default: abort(); |