Make AtomicCommitArgs const in the different helper functions to build
the AtomicRequest. Additionally, reorder the parameters to reflect the
convention that input parameters are listed first, and out parameters
are listed after.
Change-Id: I0277ec4129fbcd6312e6df9ae3f15600e9755520
Helper function to check if two modes have the same size by comparing
the vdisplay and hdisplay of the underlying drmModeModeInfo.
Change-Id: Idb1923e6f7ff42d886f9e851e15fdac99af54fb9
Signed-off-by: Drew Davenport <ddavenport@google.com>
Calculating the vsync period can yield different results depending on
floating point precision and ordering of operations.
Calcuate the vsync period in one place for consistency.
Change-Id: I968e4976ec5d546f66ffe3e0f7dd404cd934a60c
Signed-off-by: Drew Davenport <ddavenport@google.com>
Some of existing include guards were copy-pasted without modification,
therefore have incorrect name. Switch to 'pragma once' in order to fix
it and avoid such copy-paste issues in the future.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Android likes to adapt display output frequency to match window context
frequency. Unfortunately platform code has some limitations, therefore
hwcomposer HAL should be careful with reporting supported display modes.
Known platform limitations:
1: Framework doesn't distinguish between interlaced/progressive modes.
2. Framework will not switch display frequency in case margin in FPS rate
is very small (<1FPS or so). Not a big issue, but that is causing
some CTS tests to fail.
In addition to that VRR technology (or seamless mode switching) require
hwcomposer to group modes which tells the framework that seamless mode
configuration change is supported within a group of display modes.
By this commit do the following:
1. Group modes by the resolution:
E.g.
Group 1:
1024x768i@60
1024x768i@90
1024x768@50
1024x768@50.1
Group 2:
1920x1080@60
1920x1080@24.3
1920x1080i@60
1920x1080i@120
2. Disable modes in a way that each group keeps only interlaced or proressive
modes enabled. In case KMS reported preferred mode is interlaced - prefer
interlaced for the whole group, otherwise prefer progressive.
3. Disable mode in case different mode in the same group has similar frequency
with delta less than 1FPS.
4. Report only modes which remain enabled to the framework.
Test: atest CtsGraphicsTestCases
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Main goal is to increase readability of file names.
AOSP uses camelcase for files in many projects.
Lets do the same for drm_hwcomposer.
Keep platform/ directory as is, since class names is different from file names.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Change-Id: I7e992357851c2a86711f4da1241c4d507359e56b