Mesa (master): st/egl: Disable SHM in ximage backend.

Chia-I Wu olv at kemper.freedesktop.org
Sun Feb 21 07:50:48 UTC 2010


Module: Mesa
Branch: master
Commit: 1207482a0340bfe92e2ff764e55d619c8036a47d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1207482a0340bfe92e2ff764e55d619c8036a47d

Author: Chia-I Wu <olv at lunarg.com>
Date:   Sun Feb 21 15:47:45 2010 +0800

st/egl: Disable SHM in ximage backend.

With pipe_screen::update_buffer being called in st_validate_state, it is
likely that softpipe will flush tile caches to a detached SHM segment.
Disable SHM for now until a better solution is found.

---

 src/gallium/state_trackers/egl/x11/native_x11.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/gallium/state_trackers/egl/x11/native_x11.c b/src/gallium/state_trackers/egl/x11/native_x11.c
index 8eb542b..55f0d4d 100644
--- a/src/gallium/state_trackers/egl/x11/native_x11.c
+++ b/src/gallium/state_trackers/egl/x11/native_x11.c
@@ -141,9 +141,16 @@ native_create_display(EGLNativeDisplayType dpy)
 
    if (!ndpy) {
       EGLint level = (force_sw) ? _EGL_INFO : _EGL_WARNING;
-
-      _eglLog(level, "use software fallback");
-      ndpy = x11_create_ximage_display(dpy, TRUE);
+      boolean use_shm;
+
+      /*
+       * XXX st/mesa calls pipe_screen::update_buffer in st_validate_state.
+       * When SHM is used, there is a good chance that the shared memory
+       * segment is detached before the softpipe tile cache is flushed.
+       */
+      use_shm = FALSE;
+      _eglLog(level, "use software%s fallback", (use_shm) ? " (SHM)" : "");
+      ndpy = x11_create_ximage_display(dpy, use_shm);
    }
 
    return ndpy;




More information about the mesa-commit mailing list