[PATCH weston] clients/simple-egl: add -d option

Pekka Paalanen ppaalanen at gmail.com
Mon Feb 20 14:13:48 UTC 2017


From: Eero Tamminen <eero.t.tamminen at intel.com>

This emulates extra drawing work by usleep().

This is an enhancement to reproduce the problem in the bug report.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98833
Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
 clients/simple-egl.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index 9b6fa1f..c5ee05d 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -100,7 +100,7 @@ struct window {
 	struct ivi_surface *ivi_surface;
 	EGLSurface egl_surface;
 	struct wl_callback *callback;
-	int fullscreen, opaque, buffer_size, frame_sync;
+	int fullscreen, opaque, buffer_size, frame_sync, delay;
 	bool wait_for_configure;
 };
 
@@ -548,6 +548,8 @@ redraw(void *data, struct wl_callback *callback, uint32_t time)
 	glDisableVertexAttribArray(window->gl.pos);
 	glDisableVertexAttribArray(window->gl.col);
 
+	usleep(window->delay);
+
 	if (window->opaque || window->fullscreen) {
 		region = wl_compositor_create_region(window->display->compositor);
 		wl_region_add(region, 0, 0,
@@ -850,6 +852,7 @@ usage(int error_code)
 		"  -o\tCreate an opaque surface\n"
 		"  -s\tUse a 16 bpp EGL config\n"
 		"  -b\tDon't sync to compositor redraw (eglSwapInterval 0)\n"
+		"  -d <us>\tBuffer swap delay in microseconds\n"
 		"  -h\tThis help text\n\n");
 
 	exit(error_code);
@@ -870,9 +873,12 @@ main(int argc, char **argv)
 	window.window_size = window.geometry;
 	window.buffer_size = 32;
 	window.frame_sync = 1;
+	window.delay = 0;
 
 	for (i = 1; i < argc; i++) {
-		if (strcmp("-f", argv[i]) == 0)
+		if (strcmp("-d", argv[i]) == 0 && i+1 < argc)
+			window.delay = atoi(argv[++i]);
+		else if (strcmp("-f", argv[i]) == 0)
 			window.fullscreen = 1;
 		else if (strcmp("-o", argv[i]) == 0)
 			window.opaque = 1;
-- 
2.10.2



More information about the wayland-devel mailing list