[igt-dev] [PATCH] tests: Remove restrictions on tests running only DRIVER_INTEL and DRIVER_AMDGPU
Mark Yacoub
markyacoub at chromium.org
Wed Nov 10 19:53:02 UTC 2021
From: Mark Yacoub <markyacoub at google.com>
[Why]
Drivers such as MSM are able to run tests that are made generic through
supporting another driver that's not i915. Removing the restriction that
enables the test on a 2 drivers only allow the tests to run on other
drivers.
[How]
1. Replace DRIVER_INTEL | DRIVER_AMDGPU by DRIVER_ANY
2. Make the checks more broad to allow intel generic implementation to
work on all drivers while keeping special amdgpu's quirks.
Tested on Trogdor (MSM)
Signed-off-by: Mark Yacoub <markyacoub at chromium.org>
---
tests/kms_hdr.c | 2 +-
tests/kms_plane_multiple.c | 2 +-
tests/kms_plane_scaling.c | 2 +-
tests/kms_rotation_crc.c | 52 +++++++++++++++++++++++---------------
4 files changed, 34 insertions(+), 24 deletions(-)
diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
index 5b8529c8..2a76c7ec 100644
--- a/tests/kms_hdr.c
+++ b/tests/kms_hdr.c
@@ -643,7 +643,7 @@ igt_main
data_t data = {};
igt_fixture {
- data.fd = drm_open_driver_master(DRIVER_AMDGPU | DRIVER_INTEL);
+ data.fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 45cabb50..e3aa2e7c 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -445,7 +445,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
enum pipe pipe;
igt_fixture {
- data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
+ data.drm_fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
igt_require_pipe_crc(data.drm_fd);
igt_display_require(&data.display, data.drm_fd);
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 4c517a43..270f7615 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -709,7 +709,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
enum pipe pipe;
igt_fixture {
- data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
+ data.drm_fd = drm_open_driver_master(DRIVER_ANY);
igt_display_require(&data.display, data.drm_fd);
data.devid = is_i915_device(data.drm_fd) ?
intel_get_drm_devid(data.drm_fd) : 0;
diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 11401a6d..71525f95 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -295,15 +295,15 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
igt_plane_set_position(plane, data->pos_x, data->pos_y);
igt_display_commit2(display, COMMIT_ATOMIC);
- if (is_i915_device(data->gfx_fd)) {
+ if (is_amdgpu_device(data->gfx_fd)) {
+ igt_pipe_crc_collect_crc(
+ data->pipe_crc,
+ &data->crc_rect[data->output_crc_in_use][rect].flip_crc);
+ } else {
igt_pipe_crc_get_current(
display->drm_fd, data->pipe_crc,
&data->crc_rect[data->output_crc_in_use][rect].flip_crc);
igt_remove_fb(data->gfx_fd, &data->fb_flip);
- } else if (is_amdgpu_device(data->gfx_fd)) {
- igt_pipe_crc_collect_crc(
- data->pipe_crc,
- &data->crc_rect[data->output_crc_in_use][rect].flip_crc);
}
/*
@@ -318,13 +318,15 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
igt_plane_set_position(plane, data->pos_x, data->pos_y);
igt_display_commit2(display, COMMIT_ATOMIC);
- if (is_i915_device(data->gfx_fd)) {
- igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc,
- &data->crc_rect[data->output_crc_in_use][rect].ref_crc);
- } else if (is_amdgpu_device(data->gfx_fd)) {
- igt_pipe_crc_collect_crc(data->pipe_crc,
- &data->crc_rect[data->output_crc_in_use][rect].ref_crc);
+ if (is_amdgpu_device(data->gfx_fd)) {
+ igt_pipe_crc_collect_crc(
+ data->pipe_crc,
+ &data->crc_rect[data->output_crc_in_use][rect].ref_crc);
igt_remove_fb(data->gfx_fd, &data->fb_flip);
+ } else {
+ igt_pipe_crc_get_current(
+ display->drm_fd, data->pipe_crc,
+ &data->crc_rect[data->output_crc_in_use][rect].ref_crc);
}
data->crc_rect[data->output_crc_in_use][rect].valid = true;
}
@@ -383,12 +385,15 @@ static void test_single_case(data_t *data, enum pipe pipe,
igt_assert_eq(ret, 0);
/* Check CRC */
- if (is_i915_device(data->gfx_fd))
- igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc_output);
- else if (is_amdgpu_device(data->gfx_fd))
+ if (is_amdgpu_device(data->gfx_fd)) {
igt_pipe_crc_collect_crc(data->pipe_crc, &crc_output);
- igt_assert_crc_equal(&data->crc_rect[data->output_crc_in_use][rect].ref_crc,
- &crc_output);
+ } else {
+ igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc,
+ &crc_output);
+ }
+ igt_assert_crc_equal(
+ &data->crc_rect[data->output_crc_in_use][rect].ref_crc,
+ &crc_output);
/*
* If flips are requested flip to a different fb and
@@ -410,10 +415,13 @@ static void test_single_case(data_t *data, enum pipe pipe,
igt_assert_eq(ret, 0);
}
kmstest_wait_for_pageflip(data->gfx_fd);
- if (is_i915_device(data->gfx_fd))
- igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc_output);
- else if (is_amdgpu_device(data->gfx_fd))
+
+ if (is_amdgpu_device(data->gfx_fd)) {
igt_pipe_crc_collect_crc(data->pipe_crc, &crc_output);
+ } else {
+ igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc,
+ &crc_output);
+ }
igt_assert_crc_equal(&data->crc_rect[data->output_crc_in_use][rect].flip_crc,
&crc_output);
}
@@ -519,7 +527,9 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
/* Only support partial covering primary plane on gen9+ */
if (is_amdgpu_device(data->gfx_fd) ||
(plane_type == DRM_PLANE_TYPE_PRIMARY &&
- intel_display_ver(intel_get_drm_devid(data->gfx_fd)) < 9)) {
+ is_i915_device(data->gfx_fd) &&
+ intel_display_ver(
+ intel_get_drm_devid(data->gfx_fd)) < 9)) {
if (i != rectangle)
continue;
else
@@ -1033,7 +1043,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
int gen = 0;
igt_fixture {
- data.gfx_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
+ data.gfx_fd = drm_open_driver_master(DRIVER_ANY);
if (is_i915_device(data.gfx_fd)) {
data.devid = intel_get_drm_devid(data.gfx_fd);
gen = intel_display_ver(data.devid);
--
2.34.0.rc0.344.g81b53c2807-goog
More information about the igt-dev
mailing list