igt_kms: Add modeset support for atomic style commits.

All pipes are now updated in the loop first, before connectors
are read out. The mode_id and active crtc properties are added,
and crtc_id for connectors. These are required to do a modeset,
and the behavior during atomic commits is changed slightly too.

A lot of code will do the following:
- Init.
- igt_output_set_pipe(output, pipe);
- commit.

Since legacy setcrtc and atomic commit differ, there are some
differences in how we commit pipes and connectors too.

For atomic we set output->crtc during igt_output_set_pipe,
and use it in atomic commit. This may be set to NULL, in which
case the output is disconnected from the crtc. Unlike legacy
we won't attempt to bind all connectors to all pipes, only
the ones that were explicitly set.

As a test, convert kms_rmfb.c

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
3 files changed