present: Send PresentCompleteModeSuboptimalCopy appropriately

Add 'check_flip2' hook for driver to let know the core
about why flipping is not possible ('reason').
If it is because of unsupported buffer format/modifier,
a PresentCompleteNotify event is sent to the client with
the PresentCompleteModeSuboptimalCopy mode.

v2: Check for PresentOptionSuboptimal and check driver version
    before using 'check_flip2'.

v3: Only require one of 'check_flip' or 'check_flip2' to be
    implemented by the driver.
    Refactor reasons list to enum

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Louis-Francis Ratté-Boulianne
2018-02-28 01:19:36 +00:00
committed by Adam Jackson
parent 6e7c40f62d
commit e2ef3b44fa
6 changed files with 50 additions and 20 deletions

View File

@@ -69,7 +69,7 @@
/* Present */
#define SERVER_PRESENT_MAJOR_VERSION 1
#define SERVER_PRESENT_MINOR_VERSION 0
#define SERVER_PRESENT_MINOR_VERSION 1
/* RandR */
#define SERVER_RANDR_MAJOR_VERSION 1