Bug 105594 - [CI][ILK] igt@kms_3d - fail - Test assertion failure function __real_main29 - Failed assertion: ret == 0
Summary: [CI][ILK] igt@kms_3d - fail - Test assertion failure function __real_main29 -...
Status: RESOLVED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-19 09:36 UTC by Marta Löfstedt
Modified: 2019-08-14 13:48 UTC (History)
2 users (show)

See Also:
i915 platform: ILK
i915 features: display/Other


Attachments

Description Marta Löfstedt 2018-03-19 09:36:21 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_1/fi-ilk-650/igt@kms_3d.html

(kms_3d:1275) CRITICAL: Test assertion failure function __real_main29, file ../tests/kms_3d.c:110:
(kms_3d:1275) CRITICAL: Failed assertion: ret == 0
(kms_3d:1275) CRITICAL: Last errno: 22, Invalid argument
Test kms_3d failed.
Comment 1 Arek Hiler 2019-07-10 09:54:08 UTC
The test is forcing HDMI connector with EDID exposing 3D enabled modes and then doing a mode set using those 3D modes.

(kms_3d:1432) INFO: Testing:
(kms_3d:1432) INFO:     1920x1080i 60 1920 2008 2052 2200 1080 1084 1094 1125 0x20015 0x40 74250 (3D:SBSH)
(kms_3d:1432) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=1920, height=1080, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_3d:1432) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=1, pitch=7680)
(kms_3d:1432) ioctl_wrappers-DEBUG: Test requirement passed: igt_has_fb_modifiers(fd)
(kms_3d:1432) igt_fb-DEBUG: Test requirement passed: cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_3d:1432) CRITICAL: Test assertion failure function __real_main29, file ../tests/kms_3d.c:112:
(kms_3d:1432) CRITICAL: Failed assertion: ret == 0
(kms_3d:1432) CRITICAL: Last errno: 22, Invalid argument

The code:

for (int i = 0; i < connector->count_modes; i++) {
	int fb_id;
	struct kmstest_connector_config config;
	int crtc_mask = -1;
	int ret;

	if (!(connector->modes[i].flags & DRM_MODE_FLAG_3D_MASK))
		continue;

	/* buffer creation removed */

	ret = drmModeSetCrtc(drm_fd, config.crtc->crtc_id, fb_id, 0, 0,
			     &connector->connector_id, 1,
			     &connector->modes[i]);

	igt_assert(ret == 0);
}

So modeset fails with EINVAL.

The tested resolution is:
(kms_3d:1432) INFO:     1920x1080i 60 1920 2008 2052 2200 1080 1084 1094 1125 0x20015 0x40 74250 (3D:SBSH)

And this is not pruned for forced 3D EDID but as we can see in the logs, after the test exit when we probe actual modes:

<7> [43.875690] [drm:drm_mode_debug_printmodeline] Modeline "1920x1080i": 60 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x40 0x15
<7> [43.875695] [drm:drm_mode_prune_invalid] Not using 1920x1080i mode: VIRTUAL_X
<7> [43.875707] [drm:drm_mode_debug_printmodeline] Modeline "1920x1080i": 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x40 0x15
<7> [43.875712] [drm:drm_mode_prune_invalid] Not using 1920x1080i mode: VIRTUAL_X
<7> [43.875728] [drm:drm_mode_debug_printmodeline] Modeline "1920x1080i": 60 74176 1920 2008 2052 2200 1080 1084 1094 1125 0x40 0x15
<7> [43.875732] [drm:drm_mode_prune_invalid] Not using 1920x1080i mode: VIRTUAL_X

Seems like an issue with mode pruning for forced EDID that appears only on ILK. Maybe other platforms are fine with this mode in the first place?

Keeping as medium as it is affecting old platform, seems to be caused by issue in HDMI forcing code and it is for rarely used 3D.
Comment 2 Arek Hiler 2019-07-25 12:53:44 UTC
Probably the same as https://bugs.freedesktop.org/show_bug.cgi?id=105595
Comment 3 Arek Hiler 2019-07-26 07:51:18 UTC
https://patchwork.freedesktop.org/series/64224/ has been merged, closing
Comment 4 CI Bug Log 2019-08-14 13:48:08 UTC
The CI Bug Log issue associated to this bug has been archived.

New failures matching the above filters will not be associated to this bug anymore.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.