diff --git a/kmscube.c b/kmscube.c
index e8c90d4b1f0969c6686fa2312fb7e58e9de50805..f0b1d6e4a3b9e17585c2fa571e85a3f0838dcf75 100644 (file)
--- a/kmscube.c
+++ b/kmscube.c
unsigned int sec, unsigned int usec, void *data)
{
int *waiting_for_flip = data;
unsigned int sec, unsigned int usec, void *data)
{
int *waiting_for_flip = data;
- *waiting_for_flip = 0;
+ *waiting_for_flip = *waiting_for_flip - 1;
}
void print_usage()
}
void print_usage()
while (frame_count != 0) {
struct gbm_bo *next_bo;
while (frame_count != 0) {
struct gbm_bo *next_bo;
- int waiting_for_flip = 1;
+ int waiting_for_flip;
+ int cc;
draw(i++);
draw(i++);
* hw composition
*/
* hw composition
*/
- ret = drmModePageFlip(drm.fd, drm.crtc_id[DISP_ID], fb->fb_id,
- DRM_MODE_PAGE_FLIP_EVENT, &waiting_for_flip);
- if (ret) {
- printf("failed to queue page flip: %s\n", strerror(errno));
- return -1;
+ if (all_display) {
+ for (cc=0;cc<drm.ndisp; cc++) {
+ ret = drmModePageFlip(drm.fd, drm.crtc_id[cc], fb->fb_id,
+ DRM_MODE_PAGE_FLIP_EVENT, &waiting_for_flip);
+ if (ret) {
+ printf("failed to queue page flip: %s\n", strerror(errno));
+ return -1;
+ }
+ }
+ waiting_for_flip = drm.ndisp;
+ } else {
+ ret = drmModePageFlip(drm.fd, drm.crtc_id[DISP_ID], fb->fb_id,
+ DRM_MODE_PAGE_FLIP_EVENT, &waiting_for_flip);
+ if (ret) {
+ printf("failed to queue page flip: %s\n", strerror(errno));
+ return -1;
+ }
+ waiting_for_flip = 1;
}
while (waiting_for_flip) {
}
while (waiting_for_flip) {