Stuttering/lagging of video's, glxgears etc

Hi

I have a problem with my openSUSE installation, since a few months (the issue was already appearing at 13.2) I experience stuttering and lagging in video’s (vlc), youtube, en other basic graphics programs. I have recorded a GIF of what I mean http://imgur.com/a/lodps (it’s not the low FPS of the gif, it looks like the animation starts over and over again, but it should run smoothly)
Basically my video/graphics programs freeze for a fraction of a second and then continues (skipping what it misses). It’s periodically.

I’m running a Lenovo X250 with a Intel i5 5200U with integrated graphics 5500, and a desktop with a i5 3570K also with integrated graphics (HD 4000). The X250 is upgraded from 13.2 to 42.1 and just to 42.2. The Desktop is upgraded from 13.2 to 42.1
I have tried the following

  • removing the following packages (and locking them) since I thought that maybe the wrong driver was used: xf86-video-amdgpu xf86-video-fbdev xf86-video-nouveau xf86-video-vesa xf86-driver-video.
  • Checking dmesg
    dmesg | grep i915:
    2.110408] [drm] Initialized i915 1.6.0 20160711 for 0000:00:02.0 on minor 0
    2.420363] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
    3.268463] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

  • upgraded the kernel of the Desktop to 4.8.x
  • upgraded the laptop to 42.2
  • live booted with ubuntu GNOME, I experience no issues with this

How can I debug this further? Any ideas what the problem may be?

Thanks!

Well those drivers are not for Intel thus not used. xf86-video-vesa xf86-driver-video are generic and may be needed for trouble shooting. Removing things is generally a bad idea and very seldom needed

Thanks for you reply, I know they are for fallback but I was thinking they were wrongly used instead of the i915, that’s why I removed them.

Making wild guesses seldom works

try to use uxa acceleration
create the file /etc/X11/xorg.conf.d/20-intel.conf
Code:

kdesu kate /etc/X11/xorg.conf.d/20-intel.conf 

and paste this content
Code:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "uxa"
EndSection 

Hi

Thanks for helping. I tried creating that file, and rebooted, but it didn’t helped.

Any more ideas?

Thanks!

Not an Intel guy.

Run top in a konsole and see if some process takes over the CPU when the stutter happens

                 What output do you have for:
/sbin/lspci -nnk | grep 'VGA\|3D\|Display' -A3
glxinfo | egrep "version | direct | render"

You could also post your entire xorg.0.log and/or dmesg to susepaste and then provide the link(s)

Other quick thoughts?

  • Perhaps the va api is at issue?
  • Perhaps ditching the intel X driver and using the modesetting driver instead?

I installed Arch Linux (antergos) on my laptop and there I don’t have the problems. I really prefer openSUSE so I hope we can find the cause of this problem!

@gogalthorp I kept a look at it the last days but I can’t see anything special/related. When I do intensive tasks (e.g. compiling C++ with 4 threads), it don’t get worse or better.

@Tyler_K thanks for answering. Here is the information:

/sbin/lspci -nnk | grep 'VGA\|3D\|Display' -A3

00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0162] (rev 09)
    Subsystem: ASRock Incorporation Motherboard [1849:0162]
    Kernel driver in use: i915
    Kernel modules: i915

glxinfo | egrep "version | direct | render"
direct rendering: Yes
server glx version string: 1.4
client glx version string: 1.4
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.8
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 11.0.8
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

My dmesg: http://paste.opensuse.org/45605cf8 (I remove dlines about the suse firewall), and my Xorg log http://paste.opensuse.org/e09e3a81

Here is the output of vainfo:

    $ vainfo 
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Desktop - 1.6.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :    VAEntrypointVLD
      VAProfileMPEG2Simple            :    VAEntrypointEncSlice
      VAProfileMPEG2Main              :    VAEntrypointVLD
      VAProfileMPEG2Main              :    VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
      VAProfileH264Main               :    VAEntrypointVLD
      VAProfileH264Main               :    VAEntrypointEncSlice
      VAProfileH264High               :    VAEntrypointVLD
      VAProfileH264High               :    VAEntrypointEncSlice
      VAProfileH264StereoHigh         :    VAEntrypointVLD
      VAProfileVC1Simple              :    VAEntrypointVLD
      VAProfileVC1Main                :    VAEntrypointVLD
      VAProfileVC1Advanced            :    VAEntrypointVLD
      VAProfileNone                   :    VAEntrypointVideoProc
      VAProfileJPEGBaseline           :    VAEntrypointVLD

    $ zypp search libva
Loading repository data...
Reading installed packages...

S | Name                             | Summary                                    | Type      
--+----------------------------------+--------------------------------------------+-----------
  | libva                            | Video Acceleration (VA) API for Linux      | srcpackage
  | libva-debugsource                | Debug sources for package libva            | package   
  | libva-devel                      | Video Acceleration (VA) API for Linux ---> | package   
  | libva-devel-32bit                | Video Acceleration (VA) API for Linux ---> | package   
i | libva-drm1                       | Video Acceleration (VA) API for Linux ---> | package   
  | libva-drm1-32bit                 | Video Acceleration (VA) API for Linux ---> | package   
  | libva-drm1-debuginfo             | Debug information for package libva-drm1   | package   
  | libva-drm1-debuginfo-32bit       | Debug information for package libva-drm1   | package   
i | libva-egl1                       | Video Acceleration (VA) API for Linux ---> | package   
  | libva-egl1-32bit                 | Video Acceleration (VA) API for Linux ---> | package   
  | libva-egl1-debuginfo             | Debug information for package libva-egl1   | package   
  | libva-egl1-debuginfo-32bit       | Debug information for package libva-egl1   | package   
i | libva-glx1                       | Video Acceleration (VA) API for Linux ---> | package   
  | libva-glx1-32bit                 | Video Acceleration (VA) API for Linux ---> | package   
  | libva-glx1-debuginfo             | Debug information for package libva-glx1   | package   
  | libva-glx1-debuginfo-32bit       | Debug information for package libva-glx1   | package   
  | libva-vdpau-driver               | HW video decode support for VDPAU platfo-> | package   
  | libva-vdpau-driver               | HW video decode support for VDPAU platfo-> | srcpackage
  | libva-vdpau-driver-debuginfo     | Debug information for package libva-vdpa-> | package   
  | libva-vdpau-driver-debugsource   | Debug sources for package libva-vdpau-dr-> | package   
i | libva-wayland1                   | Video Acceleration (VA) API for Linux ---> | package   
  | libva-wayland1-32bit             | Video Acceleration (VA) API for Linux ---> | package   
  | libva-wayland1-debuginfo         | Debug information for package libva-wayl-> | package   
  | libva-wayland1-debuginfo-32bit   | Debug information for package libva-wayl-> | package   
i | libva-x11-1                      | Video Acceleration (VA) API for Linux ---> | package   
  | libva-x11-1-32bit                | Video Acceleration (VA) API for Linux ---> | package   
  | libva-x11-1-debuginfo            | Debug information for package libva-x11-1  | package   
  | libva-x11-1-debuginfo-32bit      | Debug information for package libva-x11-1  | package   
i | libva1                           | Video Acceleration (VA) API for Linux      | package   
  | libva1-32bit                     | Video Acceleration (VA) API for Linux      | package   
  | libva1-debuginfo                 | Debug information for package libva1       | package   
  | libva1-debuginfo-32bit           | Debug information for package libva1       | package   
  | libvacuumutils17                 | Shared library libvacuumutils for Vacuum-> | package   
  | libvacuumutils17-debuginfo       | Debug information for package libvacuumu-> | package   
i | libvala-0_28-0                   | Programming language for GNOME             | package   
  | libvala-0_28-0-debuginfo         | Debug information for package libvala-0_-> | package   
  | libvala-0_28-devel               | Programming language for GNOME             | package   
i | libvala-0_30-0                   | Programming language for GNOME             | package   
i | libvala-0_32-0                   | Programming language for GNOME             | package   
i | libvamp-hostsdk3                 | Library for Vamp audio analysis plugin h-> | package   
  | libvamp-hostsdk3-32bit           | Library for Vamp audio analysis plugin h-> | package   
  | libvamp-hostsdk3-debuginfo       | Debug information for package libvamp-ho-> | package   
  | libvamp-hostsdk3-debuginfo-32bit | Debug information for package libvamp-ho-> | package   
  | libvamp-sdk2                     | Library for Vamp audio analysis plugins    | package   
  | libvamp-sdk2-32bit               | Library for Vamp audio analysis plugins    | package   
  | libvamp-sdk2-debuginfo           | Debug information for package libvamp-sdk2 | package   
  | libvamp-sdk2-debuginfo-32bit     | Debug information for package libvamp-sdk2 | package   
  | libvarnishapi1                   | Shared libraries for Varnish               | package   
  | libvarnishapi1-debuginfo         | Debug information for package libvarnish-> | package 

Loading repository data...
Reading installed packages...

S | Name                               | Summary                                  | Type      
--+------------------------------------+------------------------------------------+-----------
i | vaapi-intel-driver                 | Intel Driver for Video Acceleration (V-> | package   
  | vaapi-intel-driver                 | Intel Driver for Video Acceleration (V-> | srcpackage
  | vaapi-intel-driver-32bit           | Intel Driver for Video Acceleration (V-> | package   
  | vaapi-intel-driver-debuginfo       | Debug information for package vaapi-in-> | package   
  | vaapi-intel-driver-debuginfo-32bit | Debug information for package vaapi-in-> | package   
  | vaapi-intel-driver-debugsource     | Debug sources for package vaapi-intel--> | package  

Is it okay that the libva-wayland1 package is installed?

Here is some more information that maybe can be useful:

    $ sudo modinfo -p i915
modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int)
panel_ignore_lid:Override lid status (0=autodetect, 1=autodetect disabled [default], -1=force lid closed, -2=force lid open) (int)
semaphores:Use semaphores for inter-ring sync (default: -1 (use per-chip defaults)) (int)
enable_rc6:Enable power-saving render C-state 6. Different stages can be selected via bitmask values (0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. default: -1 (use per-chip default) (int)
enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
lvds_downclock:Use panel (LVDS/eDP) downclocking for power savings (default: false) (int)
lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int)
lvds_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 (default: true) (bool)
enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool)
enable_ppgtt:Override PPGTT usage. (-1=auto [default], 0=disabled, 1=aliasing, 2=full) (int)
enable_execlists:Override execlists usage. (-1=auto [default], 0=disabled, 1=enabled) (int)
enable_psr:Enable PSR (default: false) (int)
preliminary_hw_support:Enable preliminary hardware support. (int)
disable_power_well:Disable the power well when possible (default: true) (int)
enable_ips:Enable IPS (default: true) (int)
fastboot:Try to skip unnecessary mode sets at boot time (default: false) (bool)
prefault_disable:Disable page prefaulting for pread/pwrite/reloc (default:false). For developers only. (bool)
load_detect_test:Force-enable the VGA load detect code 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)
disable_vtd_wa:Disable all VT-d workarounds (default: false) (bool)
enable_cmd_parser:Enable command parsing (1=enabled [default], 0=disabled) (int)
use_mmio_flip:use MMIO flips (-1=never, 0=driver discretion [default], 1=always) (int)
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 atomic modeset functionality; only planes work for now (default: false). (bool)

    $ systool -m i915 -av
Module = "i915"

  Attributes:
    coresize            = "1204224"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "8"
    srcversion          = "B10ABE675C0527F9BA2177B"
    taint               = ""
    uevent              = <store method only>

  Parameters:
    enable_hangcheck    = "Y"

  Sections:
    .altinstr_replacement= "0x0000000000000000"
    .altinstructions    = "0x0000000000000000"
    .bss                = "0x0000000000000000"
    .data               = "0x0000000000000000"
    .data..read_mostly  = "0x0000000000000000"
    .data.unlikely      = "0x0000000000000000"
    .eh_frame           = "0x0000000000000000"
    .exit.text          = "0x0000000000000000"
    .fixup              = "0x0000000000000000"
    .gnu.linkonce.this_module= "0x0000000000000000"
    .init.text          = "0x0000000000000000"
    .note.gnu.build-id  = "0x0000000000000000"
    .parainstructions   = "0x0000000000000000"
    .ref.data           = "0x0000000000000000"
    .rodata             = "0x0000000000000000"
    .rodata.str1.1      = "0x0000000000000000"
    .rodata.str1.8      = "0x0000000000000000"
    .smp_locks          = "0x0000000000000000"
    .strtab             = "0x0000000000000000"
    .symtab             = "0x0000000000000000"
    .text               = "0x0000000000000000"
    .text.unlikely      = "0x0000000000000000"
    __bug_table         = "0x0000000000000000"
    __ex_table          = "0x0000000000000000"
    __jump_table        = "0x0000000000000000"
    __kcrctab_gpl       = "0x0000000000000000"
    __ksymtab_gpl       = "0x0000000000000000"
    __ksymtab_strings   = "0x0000000000000000"
    __mcount_loc        = "0x0000000000000000"
    __param             = "0x0000000000000000"
    __tracepoints_ptrs  = "0x0000000000000000"
    __tracepoints_strings= "0x0000000000000000"
    __tracepoints       = "0x0000000000000000"
    __verbose           = "0x0000000000000000"
    _ftrace_events      = "0x0000000000000000"


 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.1.34-33-default  root=UUID=fb665abd-3c9b-43e9-8b1b-a465d8ac5c75 splash=silent quiet  showopts plymouth.enable=0 libahci.ignore_sss=1 verbose=quiet nofb  i915.i915_enable_rc6=1 i915.semaphores=1 pcie_aspm=force

Are you using the same boot parameters on antergos as you’re doing so here with openSUSE? Why do you even have those i915 options enabled?
Other quick thoughts:

  • what kernel version is antergos using … how about the rest of the graphics stack (differences between it and openSUSE?)
  • did you try using the modesettng driver instead of the Xorg intel driver ?
  • if you’re going to use the intel Xorg driver, I’d stick with sba instead of uxa … or maybe try glamor
  • try getting dri3 working

I didn’t look at the dmesg stuff (no time; its way past my bedtime and I’ve got some issues I’ve tracking down for myself right now). In any regard, the other stuff looked fine on casual glance. Try looking into some of the bullet pt suggestions just above

Hi thanks for your help!

[QUOTE=Tyler_K;2803358]

 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.1.34-33-default  root=UUID=fb665abd-3c9b-43e9-8b1b-a465d8ac5c75 splash=silent quiet  showopts plymouth.enable=0 libahci.ignore_sss=1 verbose=quiet nofb  i915.i915_enable_rc6=1 i915.semaphores=1 pcie_aspm=force

Are you using the same boot parameters on antergos as you’re doing so here with openSUSE? Why do you even have those i915 options enabled?
[/QOUTE]
I manually added those kernel parameters for testing (I read it somewhere) it doesn’t make any difference with or without them.
On antegros the paremeters are only “rw quiet”, so I tried that too.

- what kernel version is antergos using ... how about the rest of the graphics stack (differences between it and openSUSE?)

It’s using 4.8.11 I tried that on the desktop too (both opensuse as vanilla) but it didn’t make a difference backe then.

It looks like the issue has stopped occuring now. I can run zypper update (which I know sometimes make the issue worse), glxgears and a full HD youtube video without any stuttering.
The only thing I changed in my settings/configuration is that I stopped using cairo-dock. (I’m also not running it on the laptop). It would be really silly if that’s the cause of the issue.

I’ll restore the image of openSUSE on my laptop this weekend and see if it makes any difference there too, and report back.

Thanks everybody for searching with me!