Mesa (master): egl/dri2: Refuse to add EGLConfigs with no supported surface types
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Sep 11 18:28:21 UTC 2019
Module: Mesa
Branch: master
Commit: 7e0e53a077850ecb1ff86c481475f8fd79fb51fc
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e0e53a077850ecb1ff86c481475f8fd79fb51fc
Author: Adam Jackson <ajax at redhat.com>
Date: Tue Sep 10 12:07:07 2019 -0400
egl/dri2: Refuse to add EGLConfigs with no supported surface types
For example, the surfaceless platform only supports pbuffers. If the
driver supports MSAA, we would still create a config, but it would have
no supported surface types. That's meaningless, so don't do it.
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
---
src/egl/drivers/dri2/egl_dri2.c | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 526cb1969c1..f968cd7af27 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -420,6 +420,22 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
base.BindToTextureRGBA = bind_to_texture_rgba;
}
+ if (double_buffer) {
+ surface_type &= ~EGL_PIXMAP_BIT;
+ }
+
+ /* No support for pbuffer + MSAA for now.
+ *
+ * XXX TODO: pbuffer + MSAA does not work and causes crashes.
+ * See QT bugreport: https://bugreports.qt.io/browse/QTBUG-47509
+ */
+ if (base.Samples) {
+ surface_type &= ~EGL_PBUFFER_BIT;
+ }
+
+ if (!surface_type)
+ return NULL;
+
base.RenderableType = disp->ClientAPIs;
base.Conformant = disp->ClientAPIs;
@@ -464,19 +480,6 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
return NULL;
}
- if (double_buffer) {
- surface_type &= ~EGL_PIXMAP_BIT;
- }
-
- /* No support for pbuffer + MSAA for now.
- *
- * XXX TODO: pbuffer + MSAA does not work and causes crashes.
- * See QT bugreport: https://bugreports.qt.io/browse/QTBUG-47509
- */
- if (base.Samples) {
- surface_type &= ~EGL_PBUFFER_BIT;
- }
-
conf->base.SurfaceType |= surface_type;
return conf;
More information about the mesa-commit
mailing list