You are not logged in.

#1 2022-02-13 23:13:01

Mischa85
Member
Registered: 2020-12-06
Posts: 17

[SOLVED] [i915] loses signal on black surface on screen

The i915 driver is not being known for it's great stability, but this is a weird one.

The display just loses signal as soon as a great part of the image is dark. This can be reproduced by e.g. putting a large dark terminal on screen. It happens in Xorg and Wayland. Display is connected on HDMI. This does not happen at 1080p24 or 720p, it does happen at 1080p60 and 1080p50. Maybe the pixel clock has something to do with this?

inxi -G --display:

Graphics:
  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics driver: i915 v: kernel
  Display: server: X.Org 1.21.1.4 driver: loaded: i915
    note: n/a (using device driver) - try sudo/root s-res: 1920x1080
  OpenGL: renderer: Mesa DRI Intel HD Graphics 2000 (SNB GT1) v: 3.3 Mesa 21.3.5

modinfo -p i915:

modeset:Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console preference [default]) (int)
enable_dc:Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6; 3=up to DC5 with DC3CO; 4=up to DC6 with DC3CO) (int)
enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int)
panel_use_ssc:Use Spread Spectrum Clock with panels [LVDS/eDP] (default: auto from VBT) (int)
vbt_sdvo_panel_type:Override/Ignore selection of SDVO panel mode in the VBT (-2=ignore, -1=auto [default], index in VBT BIOS table) (int)
reset:Attempt GPU resets (0=disabled, 1=full gpu reset, 2=engine reset [default]) (uint)
vbt_firmware:Load VBT from specified file under /lib/firmware (charp)
error_capture:Record the GPU state following a hang. This information in /sys/class/drm/card<N>/error is vital for triaging and debugging hangs. (bool)
enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool)
enable_psr:Enable PSR (0=disabled, 1=enabled) Default: -1 (use per-chip default) (int)
psr_safest_params:Replace PSR VBT parameters by the safest and not optimal ones. This is helpful to detect if PSR issues are related to bad values set in  VBT. (0=use VBT parameters, 1=use safest parameters) (bool)
enable_psr2_sel_fetch:Enable PSR2 selective fetch (0=disabled, 1=enabled) Default: 0 (bool)
force_probe:Force probe the driver for specified devices. See CONFIG_DRM_I915_FORCE_PROBE for details. (charp)
disable_power_well:Disable display power wells when possible (-1=auto [default], 0=power wells always on, 1=power wells disabled when possible) (int)
enable_ips:Enable IPS (default: true) (int)
fastboot:Try to skip unnecessary mode sets at boot time (0=disabled, 1=enabled) Default: -1 (use per-chip default) (int)
load_detect_test:Force-enable the VGA load detect code for testing (default:false). For developers only. (bool)
force_reset_modeset_test:Force a modeset during gpu reset for testing (default:false). For developers only. (bool)
invert_brightness:Invert backlight brightness (-1 force normal, 0 machine defaults, 1 force inversion), please report PCI device ID, subsystem vendor and subsystem device ID to dri-devel@lists.freedesktop.org, if your machine needs it. It will then be included in an upcoming module version. (int)
disable_display:Disable display (default: false) (bool)
mmio_debug:Enable the MMIO debug code for the first N failures (default: off). This may negatively affect performance. (int)
verbose_state_checks:Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions. (bool)
nuclear_pageflip:Force enable atomic functionality on platforms that don't have full support yet. (bool)
edp_vswing:Ignore/Override vswing pre-emph table selection from VBT (0=use value from vbt [default], 1=low power swing(200mV),2=default swing(400mV)) (int)
enable_guc:Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load) (int)
guc_log_level:GuC firmware logging level. Requires GuC to be loaded. (-1=auto [default], 0=disable, 1..4=enable with verbosity min..max) (int)
guc_firmware_path:GuC firmware path to use instead of the default one (charp)
huc_firmware_path:HuC firmware path to use instead of the default one (charp)
dmc_firmware_path:DMC firmware path to use instead of the default one (charp)
enable_dp_mst:Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true) (bool)
enable_dpcd_backlight:Enable support for DPCD backlight control(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enable, 2=force VESA interface, 3=force Intel interface) (int)
enable_gvt:Enable support for Intel GVT-g graphics virtualization host support(default:false) (bool)
request_timeout_ms:Default request/fence/batch buffer expiration timeout. (uint)
mitigations:Selectively enable security mitigations for all Intel® GPUs in the system.

  auto -- enables all mitigations required for the platform [default]
  off  -- disables all mitigations

Individual mitigations can be enabled by passing a comma-separated string,
e.g. mitigations=residuals to enable only clearing residuals or
mitigations=auto,noresiduals to disable only the clear residual mitigation.
Either '!' or 'no' may be used to switch from enabling the mitigation to
disabling it.

Active mitigations for Ivybridge, Baytrail, Haswell:
  residuals -- clear all thread-local registers between contexts

Looking at the drm debug logging, this just loops with FB:88 and FB:87 while the display is not showing any image.

[   35.618716] [drm:drm_mode_addfb2] [FB:88]
[   35.618756] [drm:drm_atomic_state_init] Allocated atomic state 00000000ef015180
[   35.618768] [drm:drm_atomic_get_plane_state] Added [PLANE:31:primary A] 000000009adaf84e state to 00000000ef015180
[   35.618779] [drm:drm_atomic_get_crtc_state] Added [CRTC:45:pipe A] 0000000043d097e2 state to 00000000ef015180
[   35.618786] i915 0000:00:02.0: [drm:drm_atomic_set_fb_for_plane] Set [FB:88] for [PLANE:31:primary A] state 000000009adaf84e
[   35.618795] [drm:drm_atomic_check_only] checking 00000000ef015180
[   35.618826] i915 0000:00:02.0: [drm:intel_plane_atomic_calc_changes [i915]] [CRTC:45:pipe A] with [PLANE:31:primary A] visible 1 -> 1, off 0, on 0, ms 0
[   35.619080] i915 0000:00:02.0: [drm:intel_atomic_get_global_obj_state [i915]] Added new global object 00000000be0a2317 state 00000000c2488b40 to 00000000ef015180
[   35.619171] [drm:drm_atomic_nonblocking_commit] committing 00000000ef015180 nonblocking
[   35.619971] i915 0000:00:02.0: [drm:intel_fbc_update [i915]] reserved 16588800 bytes of contiguous stolen space for FBC, limit: 1
[   35.620064] i915 0000:00:02.0: [drm:intel_fbc_update [i915]] Enabling FBC on pipe A
[   35.625255] i915 0000:00:02.0: [drm:drm_mode_rmfb_work_fn] Removing [FB:87] from all active usage due to RMFB ioctl
[   35.625175] i915 0000:00:02.0: [drm:__intel_fbc_disable [i915]] Disabling FBC on pipe A
[   35.625265] [drm:drm_atomic_state_init] Allocated atomic state 000000009aa12410
[   35.625270] [drm:drm_atomic_state_default_clear] Clearing atomic state 000000009aa12410
[   35.625274] [drm:__drm_atomic_state_free] Freeing atomic state 000000009aa12410
[   35.625355] [drm:drm_atomic_state_default_clear] Clearing atomic state 00000000ef015180
[   35.625368] [drm:__drm_atomic_state_free] Freeing atomic state 00000000ef015180
[   35.636800] [drm:drm_mode_addfb2] [FB:87]
[   35.636843] [drm:drm_atomic_state_init] Allocated atomic state 000000009aa12410
[   35.636854] [drm:drm_atomic_get_plane_state] Added [PLANE:31:primary A] 0000000059605ead state to 000000009aa12410
[   35.636867] [drm:drm_atomic_get_crtc_state] Added [CRTC:45:pipe A] 0000000045538d01 state to 000000009aa12410
[   35.636873] i915 0000:00:02.0: [drm:drm_atomic_set_fb_for_plane] Set [FB:87] for [PLANE:31:primary A] state 0000000059605ead
[   35.636882] [drm:drm_atomic_check_only] checking 000000009aa12410
[   35.636903] i915 0000:00:02.0: [drm:intel_plane_atomic_calc_changes [i915]] [CRTC:45:pipe A] with [PLANE:31:primary A] visible 1 -> 1, off 0, on 0, ms 0
[   35.637194] i915 0000:00:02.0: [drm:intel_atomic_get_global_obj_state [i915]] Added new global object 00000000be0a2317 state 00000000659c3f69 to 000000009aa12410
[   35.637279] [drm:drm_atomic_nonblocking_commit] committing 000000009aa12410 nonblocking
[   35.638295] i915 0000:00:02.0: [drm:intel_fbc_update [i915]] reserved 16588800 bytes of contiguous stolen space for FBC, limit: 1
[   35.638409] i915 0000:00:02.0: [drm:intel_fbc_update [i915]] Enabling FBC on pipe A
[   35.641799] i915 0000:00:02.0: [drm:__intel_fbc_disable [i915]] Disabling FBC on pipe A
[   35.641896] i915 0000:00:02.0: [drm:drm_mode_rmfb_work_fn] Removing [FB:88] from all active usage due to RMFB ioctl
[   35.641902] [drm:drm_atomic_state_init] Allocated atomic state 0000000000f90e89
[   35.641905] [drm:drm_atomic_state_default_clear] Clearing atomic state 0000000000f90e89
[   35.641908] [drm:__drm_atomic_state_free] Freeing atomic state 0000000000f90e89
[   35.641922] [drm:drm_atomic_state_default_clear] Clearing atomic state 000000009aa12410
[   35.641931] [drm:__drm_atomic_state_free] Freeing atomic state 000000009aa12410
[   35.664263] [drm:drm_mode_addfb2] [FB:88]

Last edited by Mischa85 (2022-02-14 08:21:21)

Offline

#2 2022-02-14 01:32:17

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,838

Offline

#3 2022-02-14 08:20:50

Mischa85
Member
Registered: 2020-12-06
Posts: 17

Re: [SOLVED] [i915] loses signal on black surface on screen

I was suspecting something like this as well.

It turned out to be solved by using a different HDMI cable. I need to try to cover the basic stuff first before going in deep.

Offline

Board footer

Powered by FluxBB