Thread (1 message) 1 message, 1 author, 2021-08-18

Re: [igt-dev] [PATCH 2/4] tests/kms_concurrent: Making the test more generic

From: Mark Yacoub <hidden>
Date: 2021-08-18 18:22:50

On Wed, Aug 18, 2021 at 2:18 PM Rodrigo Siqueira
[off-list ref] wrote:
On 08/18, Mark Yacoub wrote:
quoted
This fails when I run it on freedreno.

This is the IGT output:
Hi Mark,

Is freedreno an ARM-based system? I suppose this test was not even
passed on pipe-A and others before, right?
It is, but the test runs just fine without this patch, but with adding
an earlier patch of mine that fixes the modifier.
How about your Zork system?
I haven't tried it yet, I'm unable to test at the moment.
Thanks
quoted
Subtest pipe-A: SUCCESS (0.175s)
Starting subtest: pipe-B
Testing resolution with connector eDP-1 using pipe B with seed 1629306399
(kms_concurrent:21753) igt_kms-CRITICAL: Test assertion failure
function do_display_commit, file
../igt-gpu-tools-9999/lib/igt_kms.c:3754:
(kms_concurrent:21753) igt_kms-CRITICAL: Failed assertion: ret == 0
(kms_concurrent:21753) igt_kms-CRITICAL: Last errno: 22, Invalid argument
(kms_concurrent:21753) igt_kms-CRITICAL: error: -22 != 0
Stack trace:
Subtest pipe-B failed.
**** DEBUG ****
(kms_concurrent:21753) INFO: Testing resolution with connector eDP-1
using pipe B with seed 1629306399
(kms_concurrent:21753) igt_kms-DEBUG: display: eDP-1: set_pipe(B)
(kms_concurrent:21753) igt_kms-DEBUG: display: eDP-1: Selecting pipe B
(kms_concurrent:21753) igt_kms-DEBUG: display: eDP-1: set_pipe(None)
(kms_concurrent:21753) igt_kms-DEBUG: display: eDP-1: Selecting pipe None
(kms_concurrent:21753) igt_kms-DEBUG: display: commit {
(kms_concurrent:21753) igt_kms-DEBUG: Pipe B: Setting property
"MODE_ID" to 0x0/0
(kms_concurrent:21753) igt_kms-DEBUG: Pipe B: Setting property "ACTIVE" to 0x0/0
(kms_concurrent:21753) igt_kms-DEBUG: display:     eDP-1: preparing
atomic, pipe: None
(kms_concurrent:21753) igt_kms-DEBUG: eDP-1: Setting property "CRTC_ID" to 0x0/0
(kms_concurrent:21753) igt_kms-DEBUG: display: }
(kms_concurrent:21753) igt_kms-CRITICAL: Test assertion failure
function do_display_commit, file
../igt-gpu-tools-9999/lib/igt_kms.c:3754:
(kms_concurrent:21753) igt_kms-CRITICAL: Failed assertion: ret == 0
(kms_concurrent:21753) igt_kms-CRITICAL: Last errno: 22, Invalid argument
(kms_concurrent:21753) igt_kms-CRITICAL: error: -22 != 0
(kms_concurrent:21753) igt_core-INFO: Stack trace:
****  END  ****
Subtest pipe-B: FAIL (0.008s)

This is the kernel log I see:

[77077.164985] [drm:drm_compat_ioctl] comm="kms_concurrent",
pid=20615, dev=0xe201, auth=1, DRM_IOCTL_VERSION
[77077.164985] [drm:drm_mode_object_put] OBJ ID: 32 (3)
[77077.164990] [drm:drm_ioctl] comm="kms_concurrent" pid=20615,
dev=0xe201, auth=1, DRM_IOCTL_MODE_MAP_DUMB
[77077.165006] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165026] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165048] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165069] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165093] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165137] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165164] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165184] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165206] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165226] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165247] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165266] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
[77077.165433] [drm:drm_ioctl] comm="kms_concurrent" pid=20611,
dev=0xe201, auth=1, DRM_IOCTL_MODE_ATOMIC
[77077.165459] [drm:drm_atomic_state_init] Allocated atomic state
0000000056410621
[77077.165486] [drm:drm_mode_object_get] OBJ ID: 32 (3)
[77077.165499] [drm:drm_mode_object_get] OBJ ID: 32 (4)
[77077.165511] [drm:drm_atomic_get_connector_state] Added
[CONNECTOR:32:eDP-1] 00000000d4c72b94 state to 0000000056410621
[77077.165536] [drm:drm_mode_object_get] OBJ ID: 58 (2)
[77077.165548] [drm:drm_atomic_get_crtc_state] Added [CRTC:51:crtc-0]
00000000f17155a3 state to 0000000056410621
[77077.165564] [drm:drm_mode_object_put] OBJ ID: 32 (5)
[77077.165579] msm ae00000.mdss:
[drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:32:eDP-1]
state 00000000d4c72b94 to [NOCRTC]
[77077.165596] [drm:drm_mode_object_put] OBJ ID: 32 (4)
[77077.165612] [drm:drm_atomic_get_crtc_state] Added [CRTC:52:crtc-1]
00000000d8d16568 state to 0000000056410621
[77077.165635] [drm:drm_atomic_print_new_state] checking 0000000056410621
[77077.165650] msm ae00000.mdss: [drm] crtc[51]: crtc-0
[77077.165672] msm ae00000.mdss: [drm] enable=1
[77077.165685] msm ae00000.mdss: [drm] active=1
[77077.165697] msm ae00000.mdss: [drm] self_refresh_active=0
[77077.165709] msm ae00000.mdss: [drm] planes_changed=0
[77077.165721] msm ae00000.mdss: [drm] mode_changed=0
[77077.165733] msm ae00000.mdss: [drm] active_changed=0
[77077.165744] msm ae00000.mdss: [drm] connectors_changed=0
[77077.165755] msm ae00000.mdss: [drm] color_mgmt_changed=0
[77077.165766] msm ae00000.mdss: [drm] plane_mask=0
[77077.165777] msm ae00000.mdss: [drm] connector_mask=0
[77077.165789] msm ae00000.mdss: [drm] encoder_mask=1
[77077.165801] msm ae00000.mdss: [drm] mode: "1920x1080": 60 147840
1920 1968 2000 2200 1080 1083 1089 1120 0x48 0x9
[77077.165824] msm ae00000.mdss: [drm] crtc[52]: crtc-1
[77077.165837] msm ae00000.mdss: [drm] enable=0
[77077.165849] msm ae00000.mdss: [drm] active=0
[77077.165860] msm ae00000.mdss: [drm] self_refresh_active=0
[77077.165873] msm ae00000.mdss: [drm] planes_changed=0
[77077.165885] msm ae00000.mdss: [drm] mode_changed=0
[77077.165896] msm ae00000.mdss: [drm] active_changed=0
[77077.165909] msm ae00000.mdss: [drm] connectors_changed=0
[77077.165921] msm ae00000.mdss: [drm] color_mgmt_changed=0
[77077.165932] msm ae00000.mdss: [drm] plane_mask=0
[77077.165944] msm ae00000.mdss: [drm] connector_mask=0
[77077.165956] msm ae00000.mdss: [drm] encoder_mask=0
[77077.165968] msm ae00000.mdss: [drm] mode: "": 0 0 0 0 0 0 0 0 0 0 0x0 0x0
[77077.165986] msm ae00000.mdss: [drm] connector[32]: eDP-1
[77077.166000] msm ae00000.mdss: [drm] crtc=(null)
[77077.166012] msm ae00000.mdss: [drm] self_refresh_aware=0
[77077.166025] [drm:drm_atomic_check_only] checking 0000000056410621
[77077.166043] [drm:drm_atomic_helper_check_modeset] [CRTC:51:crtc-0]
enabled/connectors mismatch
[77077.166059] [drm:drm_atomic_check_only] atomic driver check for
0000000056410621 failed: -22
[77077.166075] [drm:drm_atomic_state_default_clear] Clearing atomic
state 0000000056410621
[77077.166089] [drm:drm_mode_object_put] OBJ ID: 32 (3)
[77077.166127] [drm:dpu_crtc_destroy_state] crtc51
[77077.166144] [drm:drm_mode_object_put] OBJ ID: 58 (3)
[77077.166157] [drm:dpu_crtc_destroy_state] crtc52
[77077.166168] [drm:__drm_atomic_state_free] Freeing atomic state
0000000056410621
[77077.166186] [drm:drm_ioctl] comm="kms_concurrent", pid=20611, ret=-22

On Wed, Aug 18, 2021 at 10:56 AM Rodrigo Siqueira
[off-list ref] wrote:
quoted
Currently, the "kms_concurrent" does not work in non-intel drivers due
to using specific modifiers and operations related to i915. This commit
removes some of these particular codes in order to make them generic for
other drivers. After applying this change, kms_concurrent passed on AMD
hardware and VKMS.

Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Nicholas Choi <redacted>
Cc: Sean Paul <redacted>
Cc: Mark Yacoub <redacted>
Cc: Melissa Wen <melissa.srw@gmail.com>
Cc: Arkadiusz Hiler <redacted>
Cc: Petri Latvala <redacted>
Signed-off-by: Rodrigo Siqueira <redacted>
---
 tests/kms_concurrent.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index 969f07a7..88372d5c 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -104,8 +104,7 @@ create_fb_for_mode_position(data_t *data, drmModeModeInfo *mode,

        primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);

-       fb_id = igt_create_fb(data->drm_fd,
-                             mode->hdisplay, mode->vdisplay,
+       fb_id = igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
                              DRM_FORMAT_XRGB8888,
                              tiling,
                              &data->fb[primary->index]);
@@ -138,6 +137,7 @@ prepare_planes(data_t *data, enum pipe pipe, int max_planes,
        int *y;
        int *size;
        int i;
+       int format, modifier;

        igt_output_set_pipe(output, pipe);
@@ -161,24 +161,25 @@ prepare_planes(data_t *data, enum pipe pipe, int max_planes,
        for (i = 0; i < max_planes; i++) {
                igt_plane_t *plane = igt_output_get_plane(output, i);

-               if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+               if (plane->type == DRM_PLANE_TYPE_PRIMARY) {
                        continue;
-               else if (plane->type == DRM_PLANE_TYPE_CURSOR)
+               } else if (plane->type == DRM_PLANE_TYPE_CURSOR) {
                        size[i] = SIZE_CURSOR;
-               else
+                       format = DRM_FORMAT_ARGB8888;
+                       modifier = DRM_FORMAT_MOD_NONE;
+               } else {
                        size[i] = SIZE_PLANE;
+                       format = DRM_FORMAT_XRGB8888;
+                       modifier = DRM_FORMAT_MOD_NONE;
+               }

                x[i] = rand() % (mode->hdisplay - size[i]);
                y[i] = rand() % (mode->vdisplay - size[i]);

                data->plane[i] = plane;

-               igt_create_color_fb(data->drm_fd,
-                                   size[i], size[i],
-                                   data->plane[i]->type == DRM_PLANE_TYPE_CURSOR ? DRM_FORMAT_ARGB8888 : DRM_FORMAT_XRGB8888,
-                                   data->plane[i]->type == DRM_PLANE_TYPE_CURSOR ? DRM_FORMAT_MOD_NONE : I915_FORMAT_MOD_X_TILED,
-                                   0.0f, 0.0f, 1.0f,
-                                   &data->fb[i]);
+               igt_create_color_fb(data->drm_fd, size[i], size[i], format, modifier,
+                                   0.0f, 0.0f, 1.0f, &data->fb[i]);

                igt_plane_set_position(data->plane[i], x[i], y[i]);
                igt_plane_set_fb(data->plane[i], &data->fb[i]);
@@ -186,8 +187,7 @@ prepare_planes(data_t *data, enum pipe pipe, int max_planes,

        /* primary plane */
        data->plane[primary->index] = primary;
-       create_fb_for_mode_position(data, mode, x, y, size, size,
-                                   I915_FORMAT_MOD_X_TILED,
+       create_fb_for_mode_position(data, mode, x, y, size, size, DRM_FORMAT_MOD_NONE,
                                    max_planes, output);

        igt_plane_set_fb(data->plane[primary->index], &data->fb[primary->index]);
@@ -268,6 +268,7 @@ test_resolution_with_output(data_t *data, enum pipe pipe, int max_planes, igt_ou

                /* switch to lower resolution */
                igt_output_override_mode(output, mode_lo);
+               igt_output_set_pipe(output, PIPE_NONE);
                igt_display_commit2(&data->display, COMMIT_ATOMIC);

                /* switch back to higher resolution */
--
2.25.1
--
Rodrigo Siqueira
https://siqueira.tech
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help