Mesa (master): st/egl: Add support for drmModeDirtyFB command if found

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Fri Aug 21 14:10:21 UTC 2009


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

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Fri Aug 21 15:02:48 2009 +0200

st/egl: Add support for drmModeDirtyFB command if found

---

 src/gallium/state_trackers/egl/egl_surface.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/egl/egl_surface.c b/src/gallium/state_trackers/egl/egl_surface.c
index ed8738e..0cca68d 100644
--- a/src/gallium/state_trackers/egl/egl_surface.c
+++ b/src/gallium/state_trackers/egl/egl_surface.c
@@ -351,6 +351,7 @@ drm_destroy_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface)
 EGLBoolean
 drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw)
 {
+	struct drm_device *dev = (struct drm_device *)drv;
 	struct drm_surface *surf = lookup_drm_surface(draw);
 	struct pipe_surface *back_surf;
 
@@ -368,7 +369,6 @@ drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw)
 		st_notify_swapbuffers(surf->stfb);
 
 		if (surf->screen) {
-			surf->user->pipe->flush(surf->user->pipe, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_TEXTURE_CACHE, NULL);
 			surf->user->pipe->surface_copy(surf->user->pipe,
 				surf->screen->surface,
 				0, 0,
@@ -376,7 +376,15 @@ drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw)
 				0, 0,
 				surf->w, surf->h);
 			surf->user->pipe->flush(surf->user->pipe, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_TEXTURE_CACHE, NULL);
-			/* TODO stuff here */
+
+#ifdef DRM_MODE_FEATURE_DIRTYFB
+			/* TODO query connector property to see if this is needed */
+			drmModeDirtyFB(dev->drmFD, surf->screen->fbID, NULL, 0);
+#else
+			(void)dev;
+#endif
+
+			/* TODO more stuff here */
 		}
 	}
 




More information about the mesa-commit mailing list