Comment 9 for bug 1539011

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

"Now the QML window size *always* match the Mir surface size. So the resize "animation" will be as smoothly as the client application is able to redraw its mir surface."

See comment #5 :) The basic rule of display servers is that you should never wait for clients. Never.

The solution to this problem is what we use in the Mir demo servers, which is the same as what you will find in Unity7, Microsoft Windows, and ChromeOS at least. That is:
  (1) The server never waits for the client to do anything. Just acts on the latest information it has.
  (2) The server chooses texture coordinates such that the client's pixels always appear square.
  (3) Per number 2, if the client is lagging a bit, that's fine. Just fill in the blank space or truncate.

This is what you will find Mir demo servers do, as well as Unity7, Microsoft Windows (including Windows 10) and ChromeOS. I've verified these all recently.

Unfortunately I did propose a fix to this problem in August 2015. And although it got rejected, I thought we had landed something equivalent, but apparently not. (https://code.launchpad.net/~vanvugt/qtmir/unstretch/+merge/268724)