diff options
author | Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> | 2019-01-28 10:44:18 -0500 |
---|---|---|
committer | Harry Wentland <harry.wentland@amd.com> | 2019-01-28 12:07:42 -0500 |
commit | d1bd9c6ad6f3482bbccf4aa6417dd449e9efbe39 (patch) | |
tree | 920cc1b15cd0fb1905abaef74f8444e66d190239 /lib/igt_kms.c | |
parent | 031715e369cf01aecbe293910211e80e51995ffb (diff) |
tests: Add variable refresh rate tests
There are 3 tests for basic variable refresh rate functionality.
The tests measure flipping at the average between the current mode
refresh rate and the minimum supported variable refresh rate.
It tests that VRR is enabled and that the difference between flip
timestamps converges to the requested rate. It also tests this under
both S3 and DPMS.
Potential ideas for future tests:
- Test behavior inside VRR range with a stepping test
- Test behavior outside of VRR range
- Multi-monitor (limited by no async pageflips in DRM atomic API)
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Diffstat (limited to 'lib/igt_kms.c')
-rw-r--r-- | lib/igt_kms.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 1a91791c..71df98d2 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -189,6 +189,7 @@ const char * const igt_crtc_prop_names[IGT_NUM_CRTC_PROPS] = { [IGT_CRTC_MODE_ID] = "MODE_ID", [IGT_CRTC_ACTIVE] = "ACTIVE", [IGT_CRTC_OUT_FENCE_PTR] = "OUT_FENCE_PTR", + [IGT_CRTC_VRR_ENABLED] = "VRR_ENABLED", }; const char * const igt_connector_prop_names[IGT_NUM_CONNECTOR_PROPS] = { @@ -197,6 +198,7 @@ const char * const igt_connector_prop_names[IGT_NUM_CONNECTOR_PROPS] = { [IGT_CONNECTOR_DPMS] = "DPMS", [IGT_CONNECTOR_BROADCAST_RGB] = "Broadcast RGB", [IGT_CONNECTOR_CONTENT_PROTECTION] = "Content Protection", + [IGT_CONNECTOR_VRR_CAPABLE] = "vrr_capable", }; /* @@ -1789,6 +1791,9 @@ static void igt_pipe_reset(igt_pipe_t *pipe) igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_ACTIVE, 0); igt_pipe_obj_clear_prop_changed(pipe, IGT_CRTC_OUT_FENCE_PTR); + if (igt_pipe_obj_has_prop(pipe, IGT_CRTC_VRR_ENABLED)) + igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_VRR_ENABLED, 0); + pipe->out_fence_fd = -1; } |