<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - intel-virtual-output: one remote head fails to update"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76271#c15">Comment # 15</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - intel-virtual-output: one remote head fails to update"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=76271">bug 76271</a>
              from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
        <pre>Make sure you undo the DBG, then tell me what "top" and "perf top" look like.
At this point, it is more than likely that the pixel transfer is significant.
If it is the pixel transfer, you can try:

diff --git a/tools/virtual.c b/tools/virtual.c
index df92516..e0ecdae 100644
--- a/tools/virtual.c
+++ b/tools/virtual.c
@@ -74,6 +74,7 @@
 #endif

 #define FORCE_FULL_REDRAW 0
+#define FORCE_16BIT_XFER 1

 struct display {
        Display *dpy;
@@ -1462,7 +1463,7 @@ static int clone_output_init(struct clone *clone, struct
output *output,
        DBG(("%s-%s use shm? %d (use shm pixmap? %d)\n",
             DisplayString(dpy), name, display->has_shm,
display->has_shm_pixmap));

-       depth = output->use_shm ? display->depth : 16;
+       depth = output->use_shm && !FORCE_16BIT_XFER ? display->depth : 16;
        if (depth < clone->depth)
                clone->depth = depth;</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>