summaryrefslogtreecommitdiff
path: root/clients/simple-egl.c
diff options
context:
space:
mode:
authorEero Tamminen <eero.t.tamminen@intel.com>2017-02-20 15:14:49 +0200
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2017-02-28 17:07:08 +0200
commit8a888a5fe52b9573f6caca4aec4a1ea0c336b0b2 (patch)
tree10bf518b467f8b8fd3927f319d47ebaa475308b6 /clients/simple-egl.c
parent78dc6a9a024169050c5135bb7289cfe080dcb1f3 (diff)
downloadweston-8a888a5fe52b9573f6caca4aec4a1ea0c336b0b2.tar.gz
clients/simple-egl: add delay option
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 [Pekka: reordered the help text] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Diffstat (limited to 'clients/simple-egl.c')
-rw-r--r--clients/simple-egl.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index 9b6fa1f2..c4f72a44 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,
@@ -846,6 +848,7 @@ static void
usage(int error_code)
{
fprintf(stderr, "Usage: simple-egl [OPTIONS]\n\n"
+ " -d <us>\tBuffer swap delay in microseconds\n"
" -f\tRun in fullscreen mode\n"
" -o\tCreate an opaque surface\n"
" -s\tUse a 16 bpp EGL config\n"
@@ -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;