* [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE
@ 2023-03-31 13:45 Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 1/5] lib/xe/xe_ioctl: Add a helper to map the buffer Bhanuprakash Modem
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31 13:45 UTC (permalink / raw)
To: igt-dev
Add IGT support to enable ADDFB tests to XE BAT.
Bhanuprakash Modem (5):
lib/xe/xe_ioctl: Add a helper to map the buffer
lib/igt_fb: Add support for allocating buffers for XE
tests/kms_addfb_basic: Add XE support
tests/kms_force_connector_basic: Set the param only if driver supports
xe-fast-feedback: Add basic kms tests to XE BAT
lib/igt_fb.c | 14 ++++++--
lib/xe/xe_ioctl.c | 14 ++++++--
lib/xe/xe_ioctl.h | 1 +
tests/intel-ci/xe-fast-feedback.testlist | 30 +++++++++++++++++
tests/kms_addfb_basic.c | 42 ++++++++++++++++--------
tests/kms_force_connector_basic.c | 7 +++-
6 files changed, 88 insertions(+), 20 deletions(-)
--
2.40.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] [i-g-t V2 1/5] lib/xe/xe_ioctl: Add a helper to map the buffer
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
@ 2023-03-31 13:45 ` Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 2/5] lib/igt_fb: Add support for allocating buffers for XE Bhanuprakash Modem
` (5 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31 13:45 UTC (permalink / raw)
To: igt-dev; +Cc: Nirmoy Das
Create a new helper to map the buffer with the user PROT flags.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Acked-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
lib/xe/xe_ioctl.c | 14 ++++++++++++--
lib/xe/xe_ioctl.h | 1 +
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c
index 9d5793dff..66a8393fe 100644
--- a/lib/xe/xe_ioctl.c
+++ b/lib/xe/xe_ioctl.c
@@ -334,18 +334,28 @@ uint64_t xe_bo_mmap_offset(int fd, uint32_t bo)
return mmo.offset;
}
-void *xe_bo_map(int fd, uint32_t bo, size_t size)
+static void *__xe_bo_map(int fd, uint16_t bo, size_t size, int prot)
{
uint64_t mmo;
void *map;
mmo = xe_bo_mmap_offset(fd, bo);
- map = mmap(NULL, size, PROT_WRITE, MAP_SHARED, fd, mmo);
+ map = mmap(NULL, size, prot, MAP_SHARED, fd, mmo);
igt_assert(map != MAP_FAILED);
return map;
}
+void *xe_bo_map(int fd, uint32_t bo, size_t size)
+{
+ return __xe_bo_map(fd, bo, size, PROT_WRITE);
+}
+
+void *xe_bo_mmap_ext(int fd, uint32_t bo, size_t size, int prot)
+{
+ return __xe_bo_map(fd, bo, size, prot);
+}
+
static int __xe_exec(int fd, struct drm_xe_exec *exec)
{
int err = 0;
diff --git a/lib/xe/xe_ioctl.h b/lib/xe/xe_ioctl.h
index 5c7e773fa..d8c40eda0 100644
--- a/lib/xe/xe_ioctl.h
+++ b/lib/xe/xe_ioctl.h
@@ -73,6 +73,7 @@ uint32_t xe_engine_create_class(int fd, uint32_t vm, uint16_t class);
void xe_engine_destroy(int fd, uint32_t engine);
uint64_t xe_bo_mmap_offset(int fd, uint32_t bo);
void *xe_bo_map(int fd, uint32_t bo, size_t size);
+void *xe_bo_mmap_ext(int fd, uint32_t bo, size_t size, int prot);
void xe_exec(int fd, struct drm_xe_exec *exec);
void xe_exec_sync(int fd, uint32_t engine, uint64_t addr,
struct drm_xe_sync *sync, uint32_t num_syncs);
--
2.40.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [igt-dev] [i-g-t V2 2/5] lib/igt_fb: Add support for allocating buffers for XE
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 1/5] lib/xe/xe_ioctl: Add a helper to map the buffer Bhanuprakash Modem
@ 2023-03-31 13:45 ` Bhanuprakash Modem
2023-04-06 6:16 ` Karthik B S
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support Bhanuprakash Modem
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31 13:45 UTC (permalink / raw)
To: igt-dev
Add support to create a buffer object to the XE driver.
V2: - Use vram_if_possible() (Zbigniew)
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
lib/igt_fb.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index ba89e1f60..7379b99aa 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -49,6 +49,8 @@
#include "intel_batchbuffer.h"
#include "intel_chipset.h"
#include "intel_bufops.h"
+#include "xe/xe_ioctl.h"
+#include "xe/xe_query.h"
/**
* SECTION:igt_fb
@@ -434,7 +436,7 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
switch (modifier) {
case DRM_FORMAT_MOD_LINEAR :
- if (is_i915_device(fd))
+ if (is_intel_device(fd))
*width_ret = 64;
else
*width_ret = 1;
@@ -924,6 +926,9 @@ static uint64_t calc_fb_size(struct igt_fb *fb)
size += calc_plane_size(fb, plane);
}
+ if (is_xe_device(fb->fd))
+ size = ALIGN(size, xe_get_default_alignment(fb->fd));
+
return size;
}
@@ -1143,8 +1148,8 @@ static int create_bo_for_fb(struct igt_fb *fb, bool prefer_sysmem)
* them, so we need to make sure to use a device BO then.
*/
if (fb->modifier || fb->size || fb->strides[0] ||
- (is_i915_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
- (is_i915_device(fd) && igt_format_is_fp16(fb->drm_format)) ||
+ (is_intel_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
+ (is_intel_device(fd) && igt_format_is_fp16(fb->drm_format)) ||
(is_amdgpu_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
is_nouveau_device(fd))
device_bo = true;
@@ -1168,6 +1173,9 @@ static int create_bo_for_fb(struct igt_fb *fb, bool prefer_sysmem)
fb->strides[0]);
/* If we can't use fences, we won't use ggtt detiling later. */
igt_assert(err == 0 || err == -EOPNOTSUPP);
+ } else if (is_xe_device(fd)) {
+ fb->gem_handle = xe_bo_create_flags(fd, 0, fb->size,
+ vram_if_possible(fd, 0));
} else if (is_vc4_device(fd)) {
fb->gem_handle = igt_vc4_create_bo(fd, fb->size);
--
2.40.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 1/5] lib/xe/xe_ioctl: Add a helper to map the buffer Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 2/5] lib/igt_fb: Add support for allocating buffers for XE Bhanuprakash Modem
@ 2023-03-31 13:45 ` Bhanuprakash Modem
2023-04-04 15:02 ` Kamil Konieczny
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 4/5] tests/kms_force_connector_basic: Set the param only if driver supports Bhanuprakash Modem
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31 13:45 UTC (permalink / raw)
To: igt-dev
Update/fix necessary subtests for XE driver compatibility.
Also, reorder existing subtests to avoid code duplication.
V2: - Fix invalid-smem-bo-on-discrete subtest (Zbigniew)
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_addfb_basic.c | 42 +++++++++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 14 deletions(-)
diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
index b4526eee6..e27b22fe0 100644
--- a/tests/kms_addfb_basic.c
+++ b/tests/kms_addfb_basic.c
@@ -41,6 +41,8 @@
#include "igt_rand.h"
#include "igt_device.h"
#include "i915/intel_memory_region.h"
+#include "xe/xe_ioctl.h"
+#include "xe/xe_query.h"
uint32_t gem_bo;
uint32_t gem_bo_small;
@@ -121,7 +123,7 @@ static void invalid_tests(int fd)
igt_describe("Check if addfb2 call works for clobbered modifier");
igt_subtest("clobberred-modifier") {
- igt_require_intel(fd);
+ igt_require_i915(fd);
igt_require(gem_available_fences(fd) > 0);
f.flags = 0;
f.modifier[0] = 0;
@@ -139,10 +141,17 @@ static void invalid_tests(int fd)
uint64_t size;
igt_require_intel(fd);
- igt_require(gem_has_lmem(fd));
igt_calc_fb_size(fd, f.width, f.height,
DRM_FORMAT_XRGB8888, 0, &size, &stride);
- handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
+
+ if (is_i915_device(fd)) {
+ igt_require(gem_has_lmem(fd));
+ handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
+ } else {
+ igt_require(xe_has_vram(fd));
+ handle = xe_bo_create_flags(fd, 0, size, system_memory(fd));
+ }
+
f.handles[0] = handle;
do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EREMOTE);
}
@@ -323,7 +332,7 @@ static void tiling_tests(int fd)
igt_subtest_group {
igt_fixture {
- igt_require_intel(fd);
+ igt_require_i915(fd);
tiled_x_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED,
1024*4, NULL, NULL, NULL);
@@ -494,7 +503,7 @@ static void size_tests(int fd)
igt_describe("Test that addfb2 call fails correctly with small buffer object after changing tile");
igt_subtest("bo-too-small-due-to-tiling") {
- igt_require_intel(fd);
+ igt_require_i915(fd);
igt_require(gem_available_fences(fd) > 0);
gem_set_tiling(fd, gem_bo_small, I915_TILING_X, 1024*4);
do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EINVAL);
@@ -548,7 +557,7 @@ static void addfb25_tests(int fd)
igt_subtest_group {
igt_fixture {
- igt_require_intel(fd);
+ igt_require_i915(fd);
igt_require(gem_available_fences(fd) > 0);
gem_set_tiling(fd, gem_bo, I915_TILING_X, 1024*4);
igt_require_fb_modifiers(fd);
@@ -594,6 +603,7 @@ static void addfb25_ytile(int fd)
igt_display_t display;
igt_fixture {
+ igt_require_i915(fd);
igt_display_require(&display, fd);
gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
@@ -618,7 +628,6 @@ static void addfb25_ytile(int fd)
igt_describe("Check if addfb2 call works for y-tiling");
igt_subtest("addfb25-y-tiled-legacy") {
igt_require_fb_modifiers(fd);
- igt_require_intel(fd);
f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
@@ -631,7 +640,6 @@ static void addfb25_ytile(int fd)
igt_describe("Check if addfb2 call works for yf-tiling");
igt_subtest("addfb25-yf-tiled-legacy") {
igt_require_fb_modifiers(fd);
- igt_require_intel(fd);
f.modifier[0] = I915_FORMAT_MOD_Yf_TILED;
igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
@@ -644,7 +652,6 @@ static void addfb25_ytile(int fd)
igt_describe("Test that addfb2 call fails correctly for y-tiling with given height and modifier");
igt_subtest("addfb25-y-tiled-small-legacy") {
igt_require_fb_modifiers(fd);
- igt_require_intel(fd);
f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
f.height = 1023;
@@ -667,6 +674,7 @@ static void addfb25_4tile(int fd)
igt_display_t display;
igt_fixture {
+ igt_require_i915(fd);
igt_display_require(&display, fd);
gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
@@ -689,7 +697,6 @@ static void addfb25_4tile(int fd)
igt_describe("Check if addfb2 call works for tiling-4");
igt_subtest("addfb25-4-tiled") {
igt_require_fb_modifiers(fd);
- igt_require_intel(fd);
f.modifier[0] = I915_FORMAT_MOD_4_TILED;
igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
@@ -839,6 +846,9 @@ igt_main
igt_fixture {
fd = drm_open_driver_master(DRIVER_ANY);
igt_require(has_addfb2_iface(fd));
+
+ if (is_xe_device(fd))
+ xe_device_get(fd);
}
invalid_tests(fd);
@@ -847,6 +857,10 @@ igt_main
size_tests(fd);
+ prop_tests(fd);
+
+ master_tests(fd);
+
addfb25_tests(fd);
addfb25_ytile(fd);
@@ -855,10 +869,10 @@ igt_main
tiling_tests(fd);
- prop_tests(fd);
-
- master_tests(fd);
+ igt_fixture {
+ if (is_xe_device(fd))
+ xe_device_put(fd);
- igt_fixture
close(fd);
+ }
}
--
2.40.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [igt-dev] [i-g-t V2 4/5] tests/kms_force_connector_basic: Set the param only if driver supports
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
` (2 preceding siblings ...)
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support Bhanuprakash Modem
@ 2023-03-31 13:45 ` Bhanuprakash Modem
2023-04-04 14:51 ` Kamil Konieczny
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 5/5] xe-fast-feedback: Add basic kms tests to XE BAT Bhanuprakash Modem
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31 13:45 UTC (permalink / raw)
To: igt-dev
Set/Clear the param "load_detect_test" only if driver supports.
V2: - Set the param if driver supports
- Fix the commit message
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/kms_force_connector_basic.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c
index 4ff1efe3b..35e8153c8 100644
--- a/tests/kms_force_connector_basic.c
+++ b/tests/kms_force_connector_basic.c
@@ -36,6 +36,7 @@ static void reset_connectors(void)
drmModeRes *res;
drmModeConnector *connector = NULL;
int drm_fd;
+ char *param;
drm_fd = drm_open_driver_master(DRIVER_ANY);
res = drmModeGetResources(drm_fd);
@@ -53,7 +54,11 @@ static void reset_connectors(void)
drmModeFreeConnector(connector);
}
- igt_set_module_param_int(drm_fd, "load_detect_test", 0);
+ param = __igt_params_get(drm_fd, "load_detect_test");
+ if (param) {
+ igt_set_module_param_int(drm_fd, "load_detect_test", 0);
+ free(param);
+ }
close(drm_fd);
}
--
2.40.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [igt-dev] [i-g-t V2 5/5] xe-fast-feedback: Add basic kms tests to XE BAT
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
` (3 preceding siblings ...)
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 4/5] tests/kms_force_connector_basic: Set the param only if driver supports Bhanuprakash Modem
@ 2023-03-31 13:45 ` Bhanuprakash Modem
2023-03-31 15:58 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable ADDFB tests for XE (rev3) Patchwork
2023-04-01 15:19 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
6 siblings, 0 replies; 14+ messages in thread
From: Bhanuprakash Modem @ 2023-03-31 13:45 UTC (permalink / raw)
To: igt-dev
Add display's connector detect, addfb2 and prop tests to XE BAT.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/intel-ci/xe-fast-feedback.testlist | 30 ++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/tests/intel-ci/xe-fast-feedback.testlist b/tests/intel-ci/xe-fast-feedback.testlist
index 5f3bd2e91..5efb226ca 100644
--- a/tests/intel-ci/xe-fast-feedback.testlist
+++ b/tests/intel-ci/xe-fast-feedback.testlist
@@ -140,3 +140,33 @@ igt@xe_vm@munmap-style-unbind-userptr-front
igt@xe_vm@munmap-style-unbind-userptr-inval-end
igt@xe_vm@munmap-style-unbind-userptr-inval-front
igt@xe_waitfence@test
+igt@kms_addfb_basic@addfb25-bad-modifier
+igt@kms_addfb_basic@addfb25-modifier-no-flag
+igt@kms_addfb_basic@bad-pitch-0
+igt@kms_addfb_basic@bad-pitch-1024
+igt@kms_addfb_basic@bad-pitch-128
+igt@kms_addfb_basic@bad-pitch-256
+igt@kms_addfb_basic@bad-pitch-32
+igt@kms_addfb_basic@bad-pitch-63
+igt@kms_addfb_basic@bad-pitch-65536
+igt@kms_addfb_basic@bad-pitch-999
+igt@kms_addfb_basic@basic
+igt@kms_addfb_basic@bo-too-small
+igt@kms_addfb_basic@invalid-get-prop
+igt@kms_addfb_basic@invalid-get-prop-any
+igt@kms_addfb_basic@invalid-set-prop
+igt@kms_addfb_basic@invalid-set-prop-any
+igt@kms_addfb_basic@no-handle
+igt@kms_addfb_basic@size-max
+igt@kms_addfb_basic@small-bo
+igt@kms_addfb_basic@too-high
+igt@kms_addfb_basic@too-wide
+igt@kms_addfb_basic@unused-handle
+igt@kms_addfb_basic@unused-modifier
+igt@kms_addfb_basic@unused-offsets
+igt@kms_addfb_basic@unused-pitches
+igt@kms_force_connector_basic@force-connector-state
+igt@kms_force_connector_basic@force-edid
+igt@kms_force_connector_basic@force-load-detect
+igt@kms_force_connector_basic@prune-stale-modes
+igt@kms_prop_blob@basic
--
2.40.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Enable ADDFB tests for XE (rev3)
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
` (4 preceding siblings ...)
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 5/5] xe-fast-feedback: Add basic kms tests to XE BAT Bhanuprakash Modem
@ 2023-03-31 15:58 ` Patchwork
2023-04-01 15:19 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
6 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-03-31 15:58 UTC (permalink / raw)
To: Modem, Bhanuprakash; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 4406 bytes --]
== Series Details ==
Series: Enable ADDFB tests for XE (rev3)
URL : https://patchwork.freedesktop.org/series/115381/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12951 -> IGTPW_8731
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/index.html
Participating hosts (37 -> 35)
------------------------------
Missing (2): fi-snb-2520m fi-pnv-d510
Known issues
------------
Here are the changes found in IGTPW_8731 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@requests:
- bat-rpls-1: [PASS][1] -> [ABORT][2] ([i915#4983] / [i915#7911])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/bat-rpls-1/igt@i915_selftest@live@requests.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-rpls-1/igt@i915_selftest@live@requests.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-dg2-11: NOTRUN -> [SKIP][3] ([i915#7828])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: NOTRUN -> [SKIP][4] ([i915#5354])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
#### Possible fixes ####
* igt@i915_pm_rps@basic-api:
- bat-dg2-11: [FAIL][5] ([i915#8308]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/bat-dg2-11/igt@i915_pm_rps@basic-api.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-dg2-11/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live@hangcheck:
- fi-skl-guc: [DMESG-WARN][7] ([i915#8073]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/fi-skl-guc/igt@i915_selftest@live@hangcheck.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/fi-skl-guc/igt@i915_selftest@live@hangcheck.html
- bat-dg2-11: [ABORT][9] ([i915#7913]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
- bat-dg2-8: [FAIL][11] ([i915#7932]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
#### Warnings ####
* igt@i915_selftest@live@slpc:
- bat-rpls-2: [DMESG-FAIL][13] ([i915#6997] / [i915#7913]) -> [DMESG-FAIL][14] ([i915#6367] / [i915#7913])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/bat-rpls-2/igt@i915_selftest@live@slpc.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/bat-rpls-2/igt@i915_selftest@live@slpc.html
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
[i915#8073]: https://gitlab.freedesktop.org/drm/intel/issues/8073
[i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7230 -> IGTPW_8731
CI-20190529: 20190529
CI_DRM_12951: f128906b94b25a0f0c12dc8c647b8adc8d934d8c @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8731: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/index.html
IGT_7230: f0485204004305dd3ee8f8bbbb9c552e53a4e050 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/index.html
[-- Attachment #2: Type: text/html, Size: 5313 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for Enable ADDFB tests for XE (rev3)
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
` (5 preceding siblings ...)
2023-03-31 15:58 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable ADDFB tests for XE (rev3) Patchwork
@ 2023-04-01 15:19 ` Patchwork
6 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2023-04-01 15:19 UTC (permalink / raw)
To: Modem, Bhanuprakash; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 11905 bytes --]
== Series Details ==
Series: Enable ADDFB tests for XE (rev3)
URL : https://patchwork.freedesktop.org/series/115381/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_12951_full -> IGTPW_8731_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_8731_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_8731_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/index.html
Participating hosts (7 -> 7)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8731_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_flink_race@flink_close:
- shard-snb: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-snb2/igt@gem_flink_race@flink_close.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-snb4/igt@gem_flink_race@flink_close.html
* igt@gem_spin_batch@resubmit@rcs0:
- shard-glk: [PASS][3] -> [ABORT][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-glk4/igt@gem_spin_batch@resubmit@rcs0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-glk8/igt@gem_spin_batch@resubmit@rcs0.html
* igt@gem_spin_batch@resubmit@vecs0:
- shard-glk: [PASS][5] -> [DMESG-WARN][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-glk4/igt@gem_spin_batch@resubmit@vecs0.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-glk8/igt@gem_spin_batch@resubmit@vecs0.html
Known issues
------------
Here are the changes found in IGTPW_8731_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][7] -> [FAIL][8] ([i915#2846])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-glk9/igt@gem_exec_fair@basic-deadline.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-glk1/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-glk: [PASS][9] -> [FAIL][10] ([i915#2842])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-glk7/igt@gem_exec_fair@basic-pace@rcs0.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-glk2/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2:
- shard-glk: [PASS][11] -> [FAIL][12] ([i915#79])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-glk2/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
* igt@kms_flip@flip-vs-suspend@c-dp1:
- shard-apl: [PASS][13] -> [ABORT][14] ([i915#180])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-apl3/igt@kms_flip@flip-vs-suspend@c-dp1.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-apl2/igt@kms_flip@flip-vs-suspend@c-dp1.html
#### Possible fixes ####
* igt@gem_eio@in-flight-contexts-1us:
- {shard-tglu}: [TIMEOUT][15] ([i915#3063]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-tglu-7/igt@gem_eio@in-flight-contexts-1us.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-tglu-10/igt@gem_eio@in-flight-contexts-1us.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [SKIP][17] ([fdo#109271]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-apl1/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [FAIL][19] ([i915#72]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [FAIL][21] ([i915#2346]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12951/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
[i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7230 -> IGTPW_8731
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12951: f128906b94b25a0f0c12dc8c647b8adc8d934d8c @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8731: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/index.html
IGT_7230: f0485204004305dd3ee8f8bbbb9c552e53a4e050 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8731/index.html
[-- Attachment #2: Type: text/html, Size: 7123 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] [i-g-t V2 4/5] tests/kms_force_connector_basic: Set the param only if driver supports
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 4/5] tests/kms_force_connector_basic: Set the param only if driver supports Bhanuprakash Modem
@ 2023-04-04 14:51 ` Kamil Konieczny
0 siblings, 0 replies; 14+ messages in thread
From: Kamil Konieczny @ 2023-04-04 14:51 UTC (permalink / raw)
To: igt-dev
On 2023-03-31 at 19:15:55 +0530, Bhanuprakash Modem wrote:
> Set/Clear the param "load_detect_test" only if driver supports.
>
> V2: - Set the param if driver supports
> - Fix the commit message
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> ---
> tests/kms_force_connector_basic.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c
> index 4ff1efe3b..35e8153c8 100644
> --- a/tests/kms_force_connector_basic.c
> +++ b/tests/kms_force_connector_basic.c
> @@ -36,6 +36,7 @@ static void reset_connectors(void)
> drmModeRes *res;
> drmModeConnector *connector = NULL;
> int drm_fd;
> + char *param;
>
> drm_fd = drm_open_driver_master(DRIVER_ANY);
> res = drmModeGetResources(drm_fd);
> @@ -53,7 +54,11 @@ static void reset_connectors(void)
> drmModeFreeConnector(connector);
> }
>
> - igt_set_module_param_int(drm_fd, "load_detect_test", 0);
> + param = __igt_params_get(drm_fd, "load_detect_test");
> + if (param) {
> + igt_set_module_param_int(drm_fd, "load_detect_test", 0);
> + free(param);
> + }
>
> close(drm_fd);
> }
> --
> 2.40.0
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support Bhanuprakash Modem
@ 2023-04-04 15:02 ` Kamil Konieczny
2023-04-05 6:13 ` Modem, Bhanuprakash
0 siblings, 1 reply; 14+ messages in thread
From: Kamil Konieczny @ 2023-04-04 15:02 UTC (permalink / raw)
To: igt-dev
Hi Bhanuprakash,
On 2023-03-31 at 19:15:54 +0530, Bhanuprakash Modem wrote:
> Update/fix necessary subtests for XE driver compatibility.
> Also, reorder existing subtests to avoid code duplication.
>
> V2: - Fix invalid-smem-bo-on-discrete subtest (Zbigniew)
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_addfb_basic.c | 42 +++++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 14 deletions(-)
>
> diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
> index b4526eee6..e27b22fe0 100644
> --- a/tests/kms_addfb_basic.c
> +++ b/tests/kms_addfb_basic.c
> @@ -41,6 +41,8 @@
> #include "igt_rand.h"
> #include "igt_device.h"
> #include "i915/intel_memory_region.h"
> +#include "xe/xe_ioctl.h"
> +#include "xe/xe_query.h"
>
> uint32_t gem_bo;
> uint32_t gem_bo_small;
> @@ -121,7 +123,7 @@ static void invalid_tests(int fd)
>
> igt_describe("Check if addfb2 call works for clobbered modifier");
> igt_subtest("clobberred-modifier") {
> - igt_require_intel(fd);
> + igt_require_i915(fd);
> igt_require(gem_available_fences(fd) > 0);
> f.flags = 0;
> f.modifier[0] = 0;
> @@ -139,10 +141,17 @@ static void invalid_tests(int fd)
> uint64_t size;
>
> igt_require_intel(fd);
> - igt_require(gem_has_lmem(fd));
> igt_calc_fb_size(fd, f.width, f.height,
> DRM_FORMAT_XRGB8888, 0, &size, &stride);
> - handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
> +
> + if (is_i915_device(fd)) {
> + igt_require(gem_has_lmem(fd));
> + handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
> + } else {
> + igt_require(xe_has_vram(fd));
> + handle = xe_bo_create_flags(fd, 0, size, system_memory(fd));
> + }
> +
> f.handles[0] = handle;
> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EREMOTE);
> }
> @@ -323,7 +332,7 @@ static void tiling_tests(int fd)
>
> igt_subtest_group {
> igt_fixture {
> - igt_require_intel(fd);
> + igt_require_i915(fd);
> tiled_x_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
> DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED,
> 1024*4, NULL, NULL, NULL);
> @@ -494,7 +503,7 @@ static void size_tests(int fd)
>
> igt_describe("Test that addfb2 call fails correctly with small buffer object after changing tile");
> igt_subtest("bo-too-small-due-to-tiling") {
> - igt_require_intel(fd);
> + igt_require_i915(fd);
> igt_require(gem_available_fences(fd) > 0);
> gem_set_tiling(fd, gem_bo_small, I915_TILING_X, 1024*4);
> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EINVAL);
> @@ -548,7 +557,7 @@ static void addfb25_tests(int fd)
>
> igt_subtest_group {
> igt_fixture {
> - igt_require_intel(fd);
> + igt_require_i915(fd);
> igt_require(gem_available_fences(fd) > 0);
> gem_set_tiling(fd, gem_bo, I915_TILING_X, 1024*4);
> igt_require_fb_modifiers(fd);
> @@ -594,6 +603,7 @@ static void addfb25_ytile(int fd)
> igt_display_t display;
>
> igt_fixture {
> + igt_require_i915(fd);
> igt_display_require(&display, fd);
>
> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
> @@ -618,7 +628,6 @@ static void addfb25_ytile(int fd)
> igt_describe("Check if addfb2 call works for y-tiling");
> igt_subtest("addfb25-y-tiled-legacy") {
> igt_require_fb_modifiers(fd);
> - igt_require_intel(fd);
This removes duplication (if it is intel-i915 specific subtest).
>
> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
> @@ -631,7 +640,6 @@ static void addfb25_ytile(int fd)
> igt_describe("Check if addfb2 call works for yf-tiling");
> igt_subtest("addfb25-yf-tiled-legacy") {
> igt_require_fb_modifiers(fd);
> - igt_require_intel(fd);
>
> f.modifier[0] = I915_FORMAT_MOD_Yf_TILED;
> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
> @@ -644,7 +652,6 @@ static void addfb25_ytile(int fd)
> igt_describe("Test that addfb2 call fails correctly for y-tiling with given height and modifier");
> igt_subtest("addfb25-y-tiled-small-legacy") {
> igt_require_fb_modifiers(fd);
> - igt_require_intel(fd);
>
> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
> f.height = 1023;
> @@ -667,6 +674,7 @@ static void addfb25_4tile(int fd)
> igt_display_t display;
>
> igt_fixture {
> + igt_require_i915(fd);
> igt_display_require(&display, fd);
>
> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
> @@ -689,7 +697,6 @@ static void addfb25_4tile(int fd)
> igt_describe("Check if addfb2 call works for tiling-4");
> igt_subtest("addfb25-4-tiled") {
> igt_require_fb_modifiers(fd);
> - igt_require_intel(fd);
>
> f.modifier[0] = I915_FORMAT_MOD_4_TILED;
> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
> @@ -839,6 +846,9 @@ igt_main
> igt_fixture {
> fd = drm_open_driver_master(DRIVER_ANY);
> igt_require(has_addfb2_iface(fd));
> +
> + if (is_xe_device(fd))
> + xe_device_get(fd);
> }
>
> invalid_tests(fd);
> @@ -847,6 +857,10 @@ igt_main
>
> size_tests(fd);
>
> + prop_tests(fd);
> +
> + master_tests(fd);
> +
> addfb25_tests(fd);
>
> addfb25_ytile(fd);
> @@ -855,10 +869,10 @@ igt_main
>
> tiling_tests(fd);
>
> - prop_tests(fd);
> -
> - master_tests(fd);
This is just moved above, how does it avoid duplication ?
Regards,
Kamil
> + igt_fixture {
> + if (is_xe_device(fd))
> + xe_device_put(fd);
>
> - igt_fixture
> close(fd);
> + }
> }
> --
> 2.40.0
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support
2023-04-04 15:02 ` Kamil Konieczny
@ 2023-04-05 6:13 ` Modem, Bhanuprakash
2023-04-06 6:42 ` Karthik B S
0 siblings, 1 reply; 14+ messages in thread
From: Modem, Bhanuprakash @ 2023-04-05 6:13 UTC (permalink / raw)
To: Kamil Konieczny, igt-dev
Hi Kamil,
On Tue-04-04-2023 08:32 pm, Kamil Konieczny wrote:
> Hi Bhanuprakash,
>
> On 2023-03-31 at 19:15:54 +0530, Bhanuprakash Modem wrote:
>> Update/fix necessary subtests for XE driver compatibility.
>> Also, reorder existing subtests to avoid code duplication.
>>
>> V2: - Fix invalid-smem-bo-on-discrete subtest (Zbigniew)
>>
>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> ---
>> tests/kms_addfb_basic.c | 42 +++++++++++++++++++++++++++--------------
>> 1 file changed, 28 insertions(+), 14 deletions(-)
>>
>> diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
>> index b4526eee6..e27b22fe0 100644
>> --- a/tests/kms_addfb_basic.c
>> +++ b/tests/kms_addfb_basic.c
>> @@ -41,6 +41,8 @@
>> #include "igt_rand.h"
>> #include "igt_device.h"
>> #include "i915/intel_memory_region.h"
>> +#include "xe/xe_ioctl.h"
>> +#include "xe/xe_query.h"
>>
>> uint32_t gem_bo;
>> uint32_t gem_bo_small;
>> @@ -121,7 +123,7 @@ static void invalid_tests(int fd)
>>
>> igt_describe("Check if addfb2 call works for clobbered modifier");
>> igt_subtest("clobberred-modifier") {
>> - igt_require_intel(fd);
>> + igt_require_i915(fd);
>> igt_require(gem_available_fences(fd) > 0);
>> f.flags = 0;
>> f.modifier[0] = 0;
>> @@ -139,10 +141,17 @@ static void invalid_tests(int fd)
>> uint64_t size;
>>
>> igt_require_intel(fd);
>> - igt_require(gem_has_lmem(fd));
>> igt_calc_fb_size(fd, f.width, f.height,
>> DRM_FORMAT_XRGB8888, 0, &size, &stride);
>> - handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
>> +
>> + if (is_i915_device(fd)) {
>> + igt_require(gem_has_lmem(fd));
>> + handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
>> + } else {
>> + igt_require(xe_has_vram(fd));
>> + handle = xe_bo_create_flags(fd, 0, size, system_memory(fd));
>> + }
>> +
>> f.handles[0] = handle;
>> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EREMOTE);
>> }
>> @@ -323,7 +332,7 @@ static void tiling_tests(int fd)
>>
>> igt_subtest_group {
>> igt_fixture {
>> - igt_require_intel(fd);
>> + igt_require_i915(fd);
>> tiled_x_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>> DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED,
>> 1024*4, NULL, NULL, NULL);
>> @@ -494,7 +503,7 @@ static void size_tests(int fd)
>>
>> igt_describe("Test that addfb2 call fails correctly with small buffer object after changing tile");
>> igt_subtest("bo-too-small-due-to-tiling") {
>> - igt_require_intel(fd);
>> + igt_require_i915(fd);
>> igt_require(gem_available_fences(fd) > 0);
>> gem_set_tiling(fd, gem_bo_small, I915_TILING_X, 1024*4);
>> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EINVAL);
>> @@ -548,7 +557,7 @@ static void addfb25_tests(int fd)
>>
>> igt_subtest_group {
>> igt_fixture {
>> - igt_require_intel(fd);
>> + igt_require_i915(fd);
>> igt_require(gem_available_fences(fd) > 0);
>> gem_set_tiling(fd, gem_bo, I915_TILING_X, 1024*4);
>> igt_require_fb_modifiers(fd);
>> @@ -594,6 +603,7 @@ static void addfb25_ytile(int fd)
>> igt_display_t display;
>>
>> igt_fixture {
>> + igt_require_i915(fd);
>> igt_display_require(&display, fd);
>>
>> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>> @@ -618,7 +628,6 @@ static void addfb25_ytile(int fd)
>> igt_describe("Check if addfb2 call works for y-tiling");
>> igt_subtest("addfb25-y-tiled-legacy") {
>> igt_require_fb_modifiers(fd);
>> - igt_require_intel(fd);
>
> This removes duplication (if it is intel-i915 specific subtest).
>
>>
>> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>> @@ -631,7 +640,6 @@ static void addfb25_ytile(int fd)
>> igt_describe("Check if addfb2 call works for yf-tiling");
>> igt_subtest("addfb25-yf-tiled-legacy") {
>> igt_require_fb_modifiers(fd);
>> - igt_require_intel(fd);
>>
>> f.modifier[0] = I915_FORMAT_MOD_Yf_TILED;
>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>> @@ -644,7 +652,6 @@ static void addfb25_ytile(int fd)
>> igt_describe("Test that addfb2 call fails correctly for y-tiling with given height and modifier");
>> igt_subtest("addfb25-y-tiled-small-legacy") {
>> igt_require_fb_modifiers(fd);
>> - igt_require_intel(fd);
>>
>> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
>> f.height = 1023;
>> @@ -667,6 +674,7 @@ static void addfb25_4tile(int fd)
>> igt_display_t display;
>>
>> igt_fixture {
>> + igt_require_i915(fd);
>> igt_display_require(&display, fd);
>>
>> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>> @@ -689,7 +697,6 @@ static void addfb25_4tile(int fd)
>> igt_describe("Check if addfb2 call works for tiling-4");
>> igt_subtest("addfb25-4-tiled") {
>> igt_require_fb_modifiers(fd);
>> - igt_require_intel(fd);
>>
>> f.modifier[0] = I915_FORMAT_MOD_4_TILED;
>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>> @@ -839,6 +846,9 @@ igt_main
>> igt_fixture {
>> fd = drm_open_driver_master(DRIVER_ANY);
>> igt_require(has_addfb2_iface(fd));
>> +
>> + if (is_xe_device(fd))
>> + xe_device_get(fd);
>> }
>>
>> invalid_tests(fd);
>> @@ -847,6 +857,10 @@ igt_main
>>
>> size_tests(fd);
>>
>> + prop_tests(fd);
>> +
>> + master_tests(fd);
>> +
>> addfb25_tests(fd);
>>
>> addfb25_ytile(fd);
>> @@ -855,10 +869,10 @@ igt_main
>>
>> tiling_tests(fd);
>>
>> - prop_tests(fd);
>> -
>> - master_tests(fd);
>
> This is just moved above, how does it avoid duplication ?
Sorry for the incomplete information. There are 2 reasons to do this.
1. Due to the i915 check in igt_fixture in previous tests, these prop &
master tests are getting SKIP.
Subtest addfb25-framebuffer-vs-set-tiling: SKIP (0.000s)
Test requirement not met in function igt_require_i915, file
../lib/drmtest.c:664:
Test requirement: is_i915_device(fd)
Subtest addfb25-y-tiled-legacy: SKIP (0.000s)
Subtest addfb25-yf-tiled-legacy: SKIP (0.000s)
Subtest addfb25-y-tiled-small-legacy: SKIP (0.000s)
Subtest addfb25-4-tiled: SKIP (0.000s)
Subtest basic-x-tiled-legacy: SKIP (0.000s)
Subtest framebuffer-vs-set-tiling: SKIP (0.000s)
Subtest tile-pitch-mismatch: SKIP (0.000s)
Subtest basic-y-tiled-legacy: SKIP (0.000s)
Subtest invalid-get-prop-any: SKIP (0.000s)
Subtest invalid-get-prop: SKIP (0.000s)
Subtest invalid-set-prop-any: SKIP (0.000s)
Subtest invalid-set-prop: SKIP (0.000s)
Subtest master-rmfb: SKIP (0.000s)
After re-ordering these tests (with minimum code churn) tests are
getting PASS.
Starting subtest: bo-too-small-due-to-tiling
Test requirement not met in function igt_require_i915, file
../lib/drmtest.c:664:
Test requirement: is_i915_device(fd)
Subtest bo-too-small-due-to-tiling: SKIP (0.000s)
Starting subtest: invalid-get-prop-any
Subtest invalid-get-prop-any: SUCCESS (0.000s)
Starting subtest: invalid-get-prop
Subtest invalid-get-prop: SUCCESS (0.000s)
Starting subtest: invalid-set-prop-any
Subtest invalid-set-prop-any: SUCCESS (0.000s)
Starting subtest: invalid-set-prop
Subtest invalid-set-prop: SUCCESS (0.000s)
Starting subtest: master-rmfb
Subtest master-rmfb: SUCCESS (0.000s)
2. As XE subtests are tightly coupled with the xe_device_get() and
igt_display_fini() in tiling tests destroys xe_device will cause the
failures in prop & master tests (only if we enable tiling tests in future).
Maybe I need to re-word the commit message.
- Bhanu
>
> Regards,
> Kamil
>
>> + igt_fixture {
>> + if (is_xe_device(fd))
>> + xe_device_put(fd);
>>
>> - igt_fixture
>> close(fd);
>> + }
>> }
>> --
>> 2.40.0
>>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] [i-g-t V2 2/5] lib/igt_fb: Add support for allocating buffers for XE
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 2/5] lib/igt_fb: Add support for allocating buffers for XE Bhanuprakash Modem
@ 2023-04-06 6:16 ` Karthik B S
0 siblings, 0 replies; 14+ messages in thread
From: Karthik B S @ 2023-04-06 6:16 UTC (permalink / raw)
To: Bhanuprakash Modem, igt-dev
On 3/31/2023 7:15 PM, Bhanuprakash Modem wrote:
> Add support to create a buffer object to the XE driver.
>
> V2: - Use vram_if_possible() (Zbigniew)
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
LGTM.
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
> lib/igt_fb.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index ba89e1f60..7379b99aa 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -49,6 +49,8 @@
> #include "intel_batchbuffer.h"
> #include "intel_chipset.h"
> #include "intel_bufops.h"
> +#include "xe/xe_ioctl.h"
> +#include "xe/xe_query.h"
>
> /**
> * SECTION:igt_fb
> @@ -434,7 +436,7 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
>
> switch (modifier) {
> case DRM_FORMAT_MOD_LINEAR :
> - if (is_i915_device(fd))
> + if (is_intel_device(fd))
> *width_ret = 64;
> else
> *width_ret = 1;
> @@ -924,6 +926,9 @@ static uint64_t calc_fb_size(struct igt_fb *fb)
> size += calc_plane_size(fb, plane);
> }
>
> + if (is_xe_device(fb->fd))
> + size = ALIGN(size, xe_get_default_alignment(fb->fd));
> +
> return size;
> }
>
> @@ -1143,8 +1148,8 @@ static int create_bo_for_fb(struct igt_fb *fb, bool prefer_sysmem)
> * them, so we need to make sure to use a device BO then.
> */
> if (fb->modifier || fb->size || fb->strides[0] ||
> - (is_i915_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
> - (is_i915_device(fd) && igt_format_is_fp16(fb->drm_format)) ||
> + (is_intel_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
> + (is_intel_device(fd) && igt_format_is_fp16(fb->drm_format)) ||
> (is_amdgpu_device(fd) && igt_format_is_yuv(fb->drm_format)) ||
> is_nouveau_device(fd))
> device_bo = true;
> @@ -1168,6 +1173,9 @@ static int create_bo_for_fb(struct igt_fb *fb, bool prefer_sysmem)
> fb->strides[0]);
> /* If we can't use fences, we won't use ggtt detiling later. */
> igt_assert(err == 0 || err == -EOPNOTSUPP);
> + } else if (is_xe_device(fd)) {
> + fb->gem_handle = xe_bo_create_flags(fd, 0, fb->size,
> + vram_if_possible(fd, 0));
> } else if (is_vc4_device(fd)) {
> fb->gem_handle = igt_vc4_create_bo(fd, fb->size);
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support
2023-04-05 6:13 ` Modem, Bhanuprakash
@ 2023-04-06 6:42 ` Karthik B S
2023-04-06 7:57 ` Modem, Bhanuprakash
0 siblings, 1 reply; 14+ messages in thread
From: Karthik B S @ 2023-04-06 6:42 UTC (permalink / raw)
To: Modem, Bhanuprakash, Kamil Konieczny, igt-dev
On 4/5/2023 11:43 AM, Modem, Bhanuprakash wrote:
> Hi Kamil,
>
> On Tue-04-04-2023 08:32 pm, Kamil Konieczny wrote:
>> Hi Bhanuprakash,
>>
>> On 2023-03-31 at 19:15:54 +0530, Bhanuprakash Modem wrote:
>>> Update/fix necessary subtests for XE driver compatibility.
>>> Also, reorder existing subtests to avoid code duplication.
>>>
>>> V2: - Fix invalid-smem-bo-on-discrete subtest (Zbigniew)
>>>
>>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>>> ---
>>> tests/kms_addfb_basic.c | 42
>>> +++++++++++++++++++++++++++--------------
>>> 1 file changed, 28 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
>>> index b4526eee6..e27b22fe0 100644
>>> --- a/tests/kms_addfb_basic.c
>>> +++ b/tests/kms_addfb_basic.c
>>> @@ -41,6 +41,8 @@
>>> #include "igt_rand.h"
>>> #include "igt_device.h"
>>> #include "i915/intel_memory_region.h"
>>> +#include "xe/xe_ioctl.h"
>>> +#include "xe/xe_query.h"
>>> uint32_t gem_bo;
>>> uint32_t gem_bo_small;
>>> @@ -121,7 +123,7 @@ static void invalid_tests(int fd)
>>> igt_describe("Check if addfb2 call works for clobbered
>>> modifier");
>>> igt_subtest("clobberred-modifier") {
>>> - igt_require_intel(fd);
>>> + igt_require_i915(fd);
>>> igt_require(gem_available_fences(fd) > 0);
>>> f.flags = 0;
>>> f.modifier[0] = 0;
>>> @@ -139,10 +141,17 @@ static void invalid_tests(int fd)
>>> uint64_t size;
>>> igt_require_intel(fd);
>>> - igt_require(gem_has_lmem(fd));
>>> igt_calc_fb_size(fd, f.width, f.height,
>>> DRM_FORMAT_XRGB8888, 0, &size, &stride);
>>> - handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
>>> +
>>> + if (is_i915_device(fd)) {
>>> + igt_require(gem_has_lmem(fd));
>>> + handle = gem_create_in_memory_regions(fd, size,
>>> REGION_SMEM);
>>> + } else {
>>> + igt_require(xe_has_vram(fd));
>>> + handle = xe_bo_create_flags(fd, 0, size,
>>> system_memory(fd));
>>> + }
>>> +
>>> f.handles[0] = handle;
>>> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EREMOTE);
>>> }
>>> @@ -323,7 +332,7 @@ static void tiling_tests(int fd)
>>> igt_subtest_group {
>>> igt_fixture {
>>> - igt_require_intel(fd);
>>> + igt_require_i915(fd);
>>> tiled_x_bo = igt_create_bo_with_dimensions(fd, 1024,
>>> 1024,
>>> DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED,
>>> 1024*4, NULL, NULL, NULL);
>>> @@ -494,7 +503,7 @@ static void size_tests(int fd)
>>> igt_describe("Test that addfb2 call fails correctly with
>>> small buffer object after changing tile");
>>> igt_subtest("bo-too-small-due-to-tiling") {
>>> - igt_require_intel(fd);
>>> + igt_require_i915(fd);
>>> igt_require(gem_available_fences(fd) > 0);
>>> gem_set_tiling(fd, gem_bo_small, I915_TILING_X, 1024*4);
>>> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EINVAL);
>>> @@ -548,7 +557,7 @@ static void addfb25_tests(int fd)
>>> igt_subtest_group {
>>> igt_fixture {
>>> - igt_require_intel(fd);
>>> + igt_require_i915(fd);
>>> igt_require(gem_available_fences(fd) > 0);
>>> gem_set_tiling(fd, gem_bo, I915_TILING_X, 1024*4);
>>> igt_require_fb_modifiers(fd);
>>> @@ -594,6 +603,7 @@ static void addfb25_ytile(int fd)
>>> igt_display_t display;
>>> igt_fixture {
>>> + igt_require_i915(fd);
>>> igt_display_require(&display, fd);
>>> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>>> @@ -618,7 +628,6 @@ static void addfb25_ytile(int fd)
>>> igt_describe("Check if addfb2 call works for y-tiling");
>>> igt_subtest("addfb25-y-tiled-legacy") {
>>> igt_require_fb_modifiers(fd);
>>> - igt_require_intel(fd);
>>
>> This removes duplication (if it is intel-i915 specific subtest).
>>
>>> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
>>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>>> @@ -631,7 +640,6 @@ static void addfb25_ytile(int fd)
>>> igt_describe("Check if addfb2 call works for yf-tiling");
>>> igt_subtest("addfb25-yf-tiled-legacy") {
>>> igt_require_fb_modifiers(fd);
>>> - igt_require_intel(fd);
>>> f.modifier[0] = I915_FORMAT_MOD_Yf_TILED;
>>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>>> @@ -644,7 +652,6 @@ static void addfb25_ytile(int fd)
>>> igt_describe("Test that addfb2 call fails correctly for
>>> y-tiling with given height and modifier");
>>> igt_subtest("addfb25-y-tiled-small-legacy") {
>>> igt_require_fb_modifiers(fd);
>>> - igt_require_intel(fd);
>>> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
>>> f.height = 1023;
>>> @@ -667,6 +674,7 @@ static void addfb25_4tile(int fd)
>>> igt_display_t display;
>>> igt_fixture {
>>> + igt_require_i915(fd);
>>> igt_display_require(&display, fd);
>>> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>>> @@ -689,7 +697,6 @@ static void addfb25_4tile(int fd)
>>> igt_describe("Check if addfb2 call works for tiling-4");
>>> igt_subtest("addfb25-4-tiled") {
>>> igt_require_fb_modifiers(fd);
>>> - igt_require_intel(fd);
>>> f.modifier[0] = I915_FORMAT_MOD_4_TILED;
>>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>>> @@ -839,6 +846,9 @@ igt_main
>>> igt_fixture {
>>> fd = drm_open_driver_master(DRIVER_ANY);
>>> igt_require(has_addfb2_iface(fd));
>>> +
>>> + if (is_xe_device(fd))
>>> + xe_device_get(fd);
>>> }
>>> invalid_tests(fd);
>>> @@ -847,6 +857,10 @@ igt_main
>>> size_tests(fd);
>>> + prop_tests(fd);
>>> +
>>> + master_tests(fd);
>>> +
>>> addfb25_tests(fd);
>>> addfb25_ytile(fd);
>>> @@ -855,10 +869,10 @@ igt_main
>>> tiling_tests(fd);
>>> - prop_tests(fd);
>>> -
>>> - master_tests(fd);
>>
>> This is just moved above, how does it avoid duplication ?
>
> Sorry for the incomplete information. There are 2 reasons to do this.
>
> 1. Due to the i915 check in igt_fixture in previous tests, these prop
> & master tests are getting SKIP.
>
> Subtest addfb25-framebuffer-vs-set-tiling: SKIP (0.000s)
> Test requirement not met in function igt_require_i915, file
> ../lib/drmtest.c:664:
> Test requirement: is_i915_device(fd)
> Subtest addfb25-y-tiled-legacy: SKIP (0.000s)
> Subtest addfb25-yf-tiled-legacy: SKIP (0.000s)
> Subtest addfb25-y-tiled-small-legacy: SKIP (0.000s)
> Subtest addfb25-4-tiled: SKIP (0.000s)
> Subtest basic-x-tiled-legacy: SKIP (0.000s)
> Subtest framebuffer-vs-set-tiling: SKIP (0.000s)
> Subtest tile-pitch-mismatch: SKIP (0.000s)
> Subtest basic-y-tiled-legacy: SKIP (0.000s)
> Subtest invalid-get-prop-any: SKIP (0.000s)
> Subtest invalid-get-prop: SKIP (0.000s)
> Subtest invalid-set-prop-any: SKIP (0.000s)
> Subtest invalid-set-prop: SKIP (0.000s)
> Subtest master-rmfb: SKIP (0.000s)
>
>
> After re-ordering these tests (with minimum code churn) tests are
> getting PASS.
>
> Starting subtest: bo-too-small-due-to-tiling
> Test requirement not met in function igt_require_i915, file
> ../lib/drmtest.c:664:
> Test requirement: is_i915_device(fd)
> Subtest bo-too-small-due-to-tiling: SKIP (0.000s)
> Starting subtest: invalid-get-prop-any
> Subtest invalid-get-prop-any: SUCCESS (0.000s)
> Starting subtest: invalid-get-prop
> Subtest invalid-get-prop: SUCCESS (0.000s)
> Starting subtest: invalid-set-prop-any
> Subtest invalid-set-prop-any: SUCCESS (0.000s)
> Starting subtest: invalid-set-prop
> Subtest invalid-set-prop: SUCCESS (0.000s)
> Starting subtest: master-rmfb
> Subtest master-rmfb: SUCCESS (0.000s)
>
>
> 2. As XE subtests are tightly coupled with the xe_device_get() and
> igt_display_fini() in tiling tests destroys xe_device will cause the
> failures in prop & master tests (only if we enable tiling tests in
> future).
>
> Maybe I need to re-word the commit message.
Hi,
The test reordering seems to be masking the problem in the existing
code. I understand that this patch isn't actually introducing the issue,
but I think we would need some code restructuring to fix the issue to
add XE support in this binary.
I see 2 things which are causing the issue here.
1. 'igt_display_(require|fini)' being called individually inside the
functions. 'igt_display_require' is caused 3 times and
'igt_display_fini' is called to 2 times. And as igt_display_fini is
internally calling 'xe_device_put', this will mess up any xe specific
subtests after this call.
This could be fixed by using 'igt_subtest_group' to group the subtests
which need display and call igt_display_require only once.
'igt_display_fini' can then be called in a fixture only in the end of
all the subtests.
2. The 'igt_require_i915' being called in a fixture outside a
subtest_group, which is causing all following sub tests to skip.
Again this could be fixed by using 'igt_subtest_group' to group the
subtests which are specific to i915 and have this check in a fixture
inside the subtest group. This looks a little tricky as I see a couple
of functions that are having a combination of i915 and generic tests,
but I can't think of any better way to handle this currently.
Thanks,
Karthik.B.S
>
> - Bhanu
>
>>
>> Regards,
>> Kamil
>>
>>> + igt_fixture {
>>> + if (is_xe_device(fd))
>>> + xe_device_put(fd);
>>> - igt_fixture
>>> close(fd);
>>> + }
>>> }
>>> --
>>> 2.40.0
>>>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support
2023-04-06 6:42 ` Karthik B S
@ 2023-04-06 7:57 ` Modem, Bhanuprakash
0 siblings, 0 replies; 14+ messages in thread
From: Modem, Bhanuprakash @ 2023-04-06 7:57 UTC (permalink / raw)
To: Karthik B S, Kamil Konieczny, igt-dev
Hi Karthik,
On Thu-06-04-2023 12:12 pm, Karthik B S wrote:
>
> On 4/5/2023 11:43 AM, Modem, Bhanuprakash wrote:
>> Hi Kamil,
>>
>> On Tue-04-04-2023 08:32 pm, Kamil Konieczny wrote:
>>> Hi Bhanuprakash,
>>>
>>> On 2023-03-31 at 19:15:54 +0530, Bhanuprakash Modem wrote:
>>>> Update/fix necessary subtests for XE driver compatibility.
>>>> Also, reorder existing subtests to avoid code duplication.
>>>>
>>>> V2: - Fix invalid-smem-bo-on-discrete subtest (Zbigniew)
>>>>
>>>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>>>> ---
>>>> tests/kms_addfb_basic.c | 42
>>>> +++++++++++++++++++++++++++--------------
>>>> 1 file changed, 28 insertions(+), 14 deletions(-)
>>>>
>>>> diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
>>>> index b4526eee6..e27b22fe0 100644
>>>> --- a/tests/kms_addfb_basic.c
>>>> +++ b/tests/kms_addfb_basic.c
>>>> @@ -41,6 +41,8 @@
>>>> #include "igt_rand.h"
>>>> #include "igt_device.h"
>>>> #include "i915/intel_memory_region.h"
>>>> +#include "xe/xe_ioctl.h"
>>>> +#include "xe/xe_query.h"
>>>> uint32_t gem_bo;
>>>> uint32_t gem_bo_small;
>>>> @@ -121,7 +123,7 @@ static void invalid_tests(int fd)
>>>> igt_describe("Check if addfb2 call works for clobbered
>>>> modifier");
>>>> igt_subtest("clobberred-modifier") {
>>>> - igt_require_intel(fd);
>>>> + igt_require_i915(fd);
>>>> igt_require(gem_available_fences(fd) > 0);
>>>> f.flags = 0;
>>>> f.modifier[0] = 0;
>>>> @@ -139,10 +141,17 @@ static void invalid_tests(int fd)
>>>> uint64_t size;
>>>> igt_require_intel(fd);
>>>> - igt_require(gem_has_lmem(fd));
>>>> igt_calc_fb_size(fd, f.width, f.height,
>>>> DRM_FORMAT_XRGB8888, 0, &size, &stride);
>>>> - handle = gem_create_in_memory_regions(fd, size, REGION_SMEM);
>>>> +
>>>> + if (is_i915_device(fd)) {
>>>> + igt_require(gem_has_lmem(fd));
>>>> + handle = gem_create_in_memory_regions(fd, size,
>>>> REGION_SMEM);
>>>> + } else {
>>>> + igt_require(xe_has_vram(fd));
>>>> + handle = xe_bo_create_flags(fd, 0, size,
>>>> system_memory(fd));
>>>> + }
>>>> +
>>>> f.handles[0] = handle;
>>>> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EREMOTE);
>>>> }
>>>> @@ -323,7 +332,7 @@ static void tiling_tests(int fd)
>>>> igt_subtest_group {
>>>> igt_fixture {
>>>> - igt_require_intel(fd);
>>>> + igt_require_i915(fd);
>>>> tiled_x_bo = igt_create_bo_with_dimensions(fd, 1024,
>>>> 1024,
>>>> DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED,
>>>> 1024*4, NULL, NULL, NULL);
>>>> @@ -494,7 +503,7 @@ static void size_tests(int fd)
>>>> igt_describe("Test that addfb2 call fails correctly with
>>>> small buffer object after changing tile");
>>>> igt_subtest("bo-too-small-due-to-tiling") {
>>>> - igt_require_intel(fd);
>>>> + igt_require_i915(fd);
>>>> igt_require(gem_available_fences(fd) > 0);
>>>> gem_set_tiling(fd, gem_bo_small, I915_TILING_X, 1024*4);
>>>> do_ioctl_err(fd, DRM_IOCTL_MODE_ADDFB2, &f, EINVAL);
>>>> @@ -548,7 +557,7 @@ static void addfb25_tests(int fd)
>>>> igt_subtest_group {
>>>> igt_fixture {
>>>> - igt_require_intel(fd);
>>>> + igt_require_i915(fd);
>>>> igt_require(gem_available_fences(fd) > 0);
>>>> gem_set_tiling(fd, gem_bo, I915_TILING_X, 1024*4);
>>>> igt_require_fb_modifiers(fd);
>>>> @@ -594,6 +603,7 @@ static void addfb25_ytile(int fd)
>>>> igt_display_t display;
>>>> igt_fixture {
>>>> + igt_require_i915(fd);
>>>> igt_display_require(&display, fd);
>>>> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>>>> @@ -618,7 +628,6 @@ static void addfb25_ytile(int fd)
>>>> igt_describe("Check if addfb2 call works for y-tiling");
>>>> igt_subtest("addfb25-y-tiled-legacy") {
>>>> igt_require_fb_modifiers(fd);
>>>> - igt_require_intel(fd);
>>>
>>> This removes duplication (if it is intel-i915 specific subtest).
>>>
>>>> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
>>>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>>>> @@ -631,7 +640,6 @@ static void addfb25_ytile(int fd)
>>>> igt_describe("Check if addfb2 call works for yf-tiling");
>>>> igt_subtest("addfb25-yf-tiled-legacy") {
>>>> igt_require_fb_modifiers(fd);
>>>> - igt_require_intel(fd);
>>>> f.modifier[0] = I915_FORMAT_MOD_Yf_TILED;
>>>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>>>> @@ -644,7 +652,6 @@ static void addfb25_ytile(int fd)
>>>> igt_describe("Test that addfb2 call fails correctly for
>>>> y-tiling with given height and modifier");
>>>> igt_subtest("addfb25-y-tiled-small-legacy") {
>>>> igt_require_fb_modifiers(fd);
>>>> - igt_require_intel(fd);
>>>> f.modifier[0] = I915_FORMAT_MOD_Y_TILED;
>>>> f.height = 1023;
>>>> @@ -667,6 +674,7 @@ static void addfb25_4tile(int fd)
>>>> igt_display_t display;
>>>> igt_fixture {
>>>> + igt_require_i915(fd);
>>>> igt_display_require(&display, fd);
>>>> gem_bo = igt_create_bo_with_dimensions(fd, 1024, 1024,
>>>> @@ -689,7 +697,6 @@ static void addfb25_4tile(int fd)
>>>> igt_describe("Check if addfb2 call works for tiling-4");
>>>> igt_subtest("addfb25-4-tiled") {
>>>> igt_require_fb_modifiers(fd);
>>>> - igt_require_intel(fd);
>>>> f.modifier[0] = I915_FORMAT_MOD_4_TILED;
>>>> igt_assert_eq(drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f),
>>>> @@ -839,6 +846,9 @@ igt_main
>>>> igt_fixture {
>>>> fd = drm_open_driver_master(DRIVER_ANY);
>>>> igt_require(has_addfb2_iface(fd));
>>>> +
>>>> + if (is_xe_device(fd))
>>>> + xe_device_get(fd);
>>>> }
>>>> invalid_tests(fd);
>>>> @@ -847,6 +857,10 @@ igt_main
>>>> size_tests(fd);
>>>> + prop_tests(fd);
>>>> +
>>>> + master_tests(fd);
>>>> +
>>>> addfb25_tests(fd);
>>>> addfb25_ytile(fd);
>>>> @@ -855,10 +869,10 @@ igt_main
>>>> tiling_tests(fd);
>>>> - prop_tests(fd);
>>>> -
>>>> - master_tests(fd);
>>>
>>> This is just moved above, how does it avoid duplication ?
>>
>> Sorry for the incomplete information. There are 2 reasons to do this.
>>
>> 1. Due to the i915 check in igt_fixture in previous tests, these prop
>> & master tests are getting SKIP.
>>
>> Subtest addfb25-framebuffer-vs-set-tiling: SKIP (0.000s)
>> Test requirement not met in function igt_require_i915, file
>> ../lib/drmtest.c:664:
>> Test requirement: is_i915_device(fd)
>> Subtest addfb25-y-tiled-legacy: SKIP (0.000s)
>> Subtest addfb25-yf-tiled-legacy: SKIP (0.000s)
>> Subtest addfb25-y-tiled-small-legacy: SKIP (0.000s)
>> Subtest addfb25-4-tiled: SKIP (0.000s)
>> Subtest basic-x-tiled-legacy: SKIP (0.000s)
>> Subtest framebuffer-vs-set-tiling: SKIP (0.000s)
>> Subtest tile-pitch-mismatch: SKIP (0.000s)
>> Subtest basic-y-tiled-legacy: SKIP (0.000s)
>> Subtest invalid-get-prop-any: SKIP (0.000s)
>> Subtest invalid-get-prop: SKIP (0.000s)
>> Subtest invalid-set-prop-any: SKIP (0.000s)
>> Subtest invalid-set-prop: SKIP (0.000s)
>> Subtest master-rmfb: SKIP (0.000s)
>>
>>
>> After re-ordering these tests (with minimum code churn) tests are
>> getting PASS.
>>
>> Starting subtest: bo-too-small-due-to-tiling
>> Test requirement not met in function igt_require_i915, file
>> ../lib/drmtest.c:664:
>> Test requirement: is_i915_device(fd)
>> Subtest bo-too-small-due-to-tiling: SKIP (0.000s)
>> Starting subtest: invalid-get-prop-any
>> Subtest invalid-get-prop-any: SUCCESS (0.000s)
>> Starting subtest: invalid-get-prop
>> Subtest invalid-get-prop: SUCCESS (0.000s)
>> Starting subtest: invalid-set-prop-any
>> Subtest invalid-set-prop-any: SUCCESS (0.000s)
>> Starting subtest: invalid-set-prop
>> Subtest invalid-set-prop: SUCCESS (0.000s)
>> Starting subtest: master-rmfb
>> Subtest master-rmfb: SUCCESS (0.000s)
>>
>>
>> 2. As XE subtests are tightly coupled with the xe_device_get() and
>> igt_display_fini() in tiling tests destroys xe_device will cause the
>> failures in prop & master tests (only if we enable tiling tests in
>> future).
>>
>> Maybe I need to re-word the commit message.
> Hi,
>
> The test reordering seems to be masking the problem in the existing
> code. I understand that this patch isn't actually introducing the issue,
> but I think we would need some code restructuring to fix the issue to
> add XE support in this binary.
>
> I see 2 things which are causing the issue here.
>
> 1. 'igt_display_(require|fini)' being called individually inside the
> functions. 'igt_display_require' is caused 3 times and
> 'igt_display_fini' is called to 2 times. And as igt_display_fini is
> internally calling 'xe_device_put', this will mess up any xe specific
> subtests after this call.
>
> This could be fixed by using 'igt_subtest_group' to group the subtests
> which need display and call igt_display_require only once.
> 'igt_display_fini' can then be called in a fixture only in the end of
> all the subtests.
>
> 2. The 'igt_require_i915' being called in a fixture outside a
> subtest_group, which is causing all following sub tests to skip.
>
> Again this could be fixed by using 'igt_subtest_group' to group the
> subtests which are specific to i915 and have this check in a fixture
> inside the subtest group. This looks a little tricky as I see a couple
> of functions that are having a combination of i915 and generic tests,
> but I can't think of any better way to handle this currently.
I have separated this into two patches and floated a new rev [*].
1- Re-group & cleanup the code
2- Xe support
[*]: https://patchwork.freedesktop.org/series/115381/
- Bhanu
>
> Thanks,
> Karthik.B.S
>>
>> - Bhanu
>>
>>>
>>> Regards,
>>> Kamil
>>>
>>>> + igt_fixture {
>>>> + if (is_xe_device(fd))
>>>> + xe_device_put(fd);
>>>> - igt_fixture
>>>> close(fd);
>>>> + }
>>>> }
>>>> --
>>>> 2.40.0
>>>>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-04-06 7:57 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-31 13:45 [igt-dev] [i-g-t V2 0/5] Enable ADDFB tests for XE Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 1/5] lib/xe/xe_ioctl: Add a helper to map the buffer Bhanuprakash Modem
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 2/5] lib/igt_fb: Add support for allocating buffers for XE Bhanuprakash Modem
2023-04-06 6:16 ` Karthik B S
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 3/5] tests/kms_addfb_basic: Add XE support Bhanuprakash Modem
2023-04-04 15:02 ` Kamil Konieczny
2023-04-05 6:13 ` Modem, Bhanuprakash
2023-04-06 6:42 ` Karthik B S
2023-04-06 7:57 ` Modem, Bhanuprakash
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 4/5] tests/kms_force_connector_basic: Set the param only if driver supports Bhanuprakash Modem
2023-04-04 14:51 ` Kamil Konieczny
2023-03-31 13:45 ` [igt-dev] [i-g-t V2 5/5] xe-fast-feedback: Add basic kms tests to XE BAT Bhanuprakash Modem
2023-03-31 15:58 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable ADDFB tests for XE (rev3) Patchwork
2023-04-01 15:19 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.