[igt-dev] [i-g-t V2 14/17] tests/i915/kms_fb_coherancy: Add XE support
Bhanuprakash Modem
bhanuprakash.modem at intel.com
Wed Aug 2 10:20:56 UTC 2023
Add XE driver support for kms tests. This patch will add a support
to call the corresponding apis based on the driver (i915/xe)
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
---
tests/i915/kms_fb_coherency.c | 43 +++++++++++++++++++----------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/tests/i915/kms_fb_coherency.c b/tests/i915/kms_fb_coherency.c
index edb5ba460..1df3d90ff 100644
--- a/tests/i915/kms_fb_coherency.c
+++ b/tests/i915/kms_fb_coherency.c
@@ -15,6 +15,7 @@
#include <string.h>
#include "igt.h"
+#include "xe/xe_ioctl.h"
typedef struct {
int drm_fd;
@@ -90,7 +91,7 @@ static struct igt_fb *prepare_fb(data_t *data)
0, 0, fb->width, fb->height,
0, 0, fb->width << 16, fb->height << 16);
- if (!gem_has_lmem(data->drm_fd)) {
+ if (is_i915_device(data->drm_fd) && !gem_has_lmem(data->drm_fd)) {
uint32_t caching;
/* make sure caching mode has become UC/WT */
@@ -159,7 +160,10 @@ static void test_mmap_offset_wc(data_t *data)
fb = prepare_fb(data);
- buf = gem_mmap_offset__wc(data->drm_fd, fb->gem_handle, 0, fb->size, PROT_WRITE);
+ if (is_i915_device(data->drm_fd))
+ buf = gem_mmap_offset__wc(data->drm_fd, fb->gem_handle, 0, fb->size, PROT_WRITE);
+ else
+ buf = xe_bo_mmap_ext(data->drm_fd, fb->gem_handle, fb->size, PROT_WRITE);
check_buf_crc(data, buf, fb);
}
@@ -225,7 +229,7 @@ igt_main
data_t data;
igt_fixture {
- data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+ data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
data.devid = intel_get_drm_devid(data.drm_fd);
@@ -247,39 +251,38 @@ igt_main
* Functionality: gtt
*/
igt_subtest_with_dynamic("memset-crc") {
- if (gem_has_mappable_ggtt(data.drm_fd)) {
+ if (igt_draw_supports_method(data.drm_fd, IGT_DRAW_MMAP_GTT)) {
igt_dynamic("mmap-gtt")
test_mmap_gtt(&data);
cleanup_crtc(&data);
}
- if (gem_mmap_offset__has_wc(data.drm_fd)) {
+ if (igt_draw_supports_method(data.drm_fd, IGT_DRAW_MMAP_WC)) {
igt_dynamic("mmap-offset-wc")
test_mmap_offset_wc(&data);
cleanup_crtc(&data);
}
- if (gem_has_lmem(data.drm_fd)) {
- igt_dynamic("mmap-offset-fixed")
- test_mmap_offset_fixed(&data);
+ if (is_i915_device(data.drm_fd)) {
+ if (gem_has_lmem(data.drm_fd)) {
+ igt_dynamic("mmap-offset-fixed")
+ test_mmap_offset_fixed(&data);
+ } else if (gem_has_mmap_offset(data.drm_fd)) {
+ igt_dynamic("mmap-offset-uc")
+ test_mmap_offset_uc(&data);
+ }
cleanup_crtc(&data);
- } else if (gem_has_mmap_offset(data.drm_fd)) {
- igt_dynamic("mmap-offset-uc")
- test_mmap_offset_uc(&data);
+ if (gem_has_legacy_mmap(data.drm_fd) &&
+ gem_mmap__has_wc(data.drm_fd)) {
+ igt_dynamic("mmap-legacy-wc")
+ test_legacy_mmap_wc(&data);
- cleanup_crtc(&data);
- }
-
- if (gem_has_legacy_mmap(data.drm_fd) &&
- gem_mmap__has_wc(data.drm_fd)) {
- igt_dynamic("mmap-legacy-wc")
- test_legacy_mmap_wc(&data);
-
- cleanup_crtc(&data);
+ cleanup_crtc(&data);
+ }
}
}
--
2.40.0
More information about the igt-dev
mailing list