From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE9F410E0EB for ; Wed, 19 Apr 2023 10:22:30 +0000 (UTC) Message-ID: Date: Wed, 19 Apr 2023 15:52:15 +0530 To: Bhanuprakash Modem , References: <20230418152822.1655272-4-bhanuprakash.modem@intel.com> <20230419063055.1712791-1-bhanuprakash.modem@intel.com> Content-Language: en-US From: Karthik B S In-Reply-To: <20230419063055.1712791-1-bhanuprakash.modem@intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Subject: Re: [igt-dev] [i-g-t V3 3/5] tests/kms_flip: Add XE support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: On 4/19/2023 12:00 PM, Bhanuprakash Modem wrote: > Add XE driver support for kms tests. > > V2: - Minor cleanups > V3: - Don't run the test instead of SKIP > > Signed-off-by: Bhanuprakash Modem Reviewed-by: Karthik B S > --- > tests/kms_flip.c | 42 +++++++++++++++++++++++++++++++----------- > 1 file changed, 31 insertions(+), 11 deletions(-) > > diff --git a/tests/kms_flip.c b/tests/kms_flip.c > index 5e82f4a2f..e4c98b8ec 100755 > --- a/tests/kms_flip.c > +++ b/tests/kms_flip.c > @@ -44,6 +44,7 @@ > > #include "i915/gem_create.h" > #include "igt_stats.h" > +#include "xe/xe_query.h" > > #define TEST_DPMS (1 << 0) > > @@ -1353,9 +1354,13 @@ restart: > /* 256 MB is usually the maximum mappable aperture, > * (make it 4x times that to ensure failure) */ > if (o->flags & TEST_BO_TOOBIG) { > - igt_skip_on(!is_i915_device(drm_fd)); > + igt_skip_on(!is_intel_device(drm_fd)); > bo_size = 4*gem_mappable_aperture_size(drm_fd); > - igt_require(bo_size < gem_global_aperture_size(drm_fd)); > + > + if (is_i915_device(drm_fd)) > + igt_require(bo_size < gem_global_aperture_size(drm_fd)); > + else > + igt_require(bo_size < (1ULL << xe_va_bits(drm_fd))); > } > > o->fb_ids[0] = igt_create_fb(drm_fd, o->fb_width, o->fb_height, > @@ -1552,14 +1557,19 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs, > __run_test_on_crtc_set(o, crtc_idxs, crtc_count, duration_ms); > } > > -static int run_test(int duration, int flags) > +static void run_test(int duration, int flags) > { > struct test_output o; > int i, n, modes = 0; > > - igt_require((flags & TEST_HANG) == 0 || !is_wedged(drm_fd)); > + /* No tiling support in XE. */ > + if (is_xe_device(drm_fd) && flags & TEST_FENCE_STRESS) > + return; > + > + igt_require((flags & TEST_HANG) == 0 || > + (is_i915_device(drm_fd) && !is_wedged(drm_fd))); > igt_require(!(flags & TEST_FENCE_STRESS) || > - gem_available_fences(drm_fd)); > + (is_i915_device(drm_fd) && gem_available_fences(drm_fd))); > > resources = drmModeGetResources(drm_fd); > igt_require(resources); > @@ -1618,17 +1628,21 @@ static int run_test(int duration, int flags) > } > > drmModeFreeResources(resources); > - return 1; > } > > -static int run_pair(int duration, int flags) > +static void run_pair(int duration, int flags) > { > struct test_output o; > int i, j, m, n, modes = 0; > > - igt_require((flags & TEST_HANG) == 0 || !is_wedged(drm_fd)); > + /* No tiling support in XE. */ > + if (is_xe_device(drm_fd) && flags & TEST_FENCE_STRESS) > + return; > + > + igt_require((flags & TEST_HANG) == 0 || > + (is_i915_device(drm_fd) && !is_wedged(drm_fd))); > igt_require(!(flags & TEST_FENCE_STRESS) || > - gem_available_fences(drm_fd)); > + (is_i915_device(drm_fd) && gem_available_fences(drm_fd))); > > resources = drmModeGetResources(drm_fd); > igt_require(resources); > @@ -1693,7 +1707,6 @@ static int run_pair(int duration, int flags) > } > > drmModeFreeResources(resources); > - return 1; > } > > static void get_timestamp_format(void) > @@ -1813,6 +1826,9 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL) > igt_install_exit_handler(kms_flip_exit_handler); > get_timestamp_format(); > > + if (is_xe_device(drm_fd)) > + xe_device_get(drm_fd); > + > if (is_i915_device(drm_fd)) { > bops = buf_ops_create(drm_fd); > } > @@ -1878,6 +1894,10 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL) > } > igt_stop_signal_helper(); > > - igt_fixture > + igt_fixture { > + if (is_xe_device(drm_fd)) > + xe_device_put(drm_fd); > + > close(drm_fd); > + } > }