dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 93147] [regression bisected] Stuttering in games caused by commit 4dfd6486 "drm: Use vblank timestamps to guesstimate how many vblanks were missed"
Date: Sat, 28 Nov 2015 03:08:57 +0000	[thread overview]
Message-ID: <bug-93147-502@http.bugs.freedesktop.org/> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 6153 bytes --]

https://bugs.freedesktop.org/show_bug.cgi?id=93147

            Bug ID: 93147
           Summary: [regression bisected] Stuttering in games caused by
                    commit 4dfd6486 "drm: Use vblank timestamps to
                    guesstimate how many vblanks were missed"
           Product: DRI
           Version: DRI git
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: minor
          Priority: medium
         Component: DRM/Radeon
          Assignee: dri-devel@lists.freedesktop.org
          Reporter: dawitbro@sbcglobal.net
                CC: ville.syrjala@linux.intel.com

Created attachment 120187
  --> https://bugs.freedesktop.org/attachment.cgi?id=120187&action=edit
dmesg from kernel built at "bad" commit

Building Linux from drm-next or drm-fixes gives me a kernel which causes what
appears to be stuttering/hesitations in test applications (particularly severe
in 'prboom-plus') which were not present in Linux 4.3.


    HARDWARE
    GPU:  Radeon HD 7850 (Pitcairn)
    CPU:  64-bit AMD FX-8320E Eight-Core Processor
chipset:  AMD 990FX
 mboard:  ASUS M5A99FX PRO R2.0

    SOFTWARE
xf86-video-ati:  7.6.99+ (git master at commit 10b7c3de, Nov 17 2015)
   xorg-server:  1.18.0+ (git master at commit 51984ddd, Nov 18 2015)
          mesa:  11.1.0+ (git master at commit d8c26969, Nov 20 2015)
        libdrm:  2.4.65+ (git master at commit c3deddd9, Nov 10 2015)
        kernel:  drm-fixes (at commit 2d591ab1, Nov 20 2015)
  distribution:  Debian unstable


Reproducing steps:

I apply future Radeon DRM and core DRM code to latest stable Linux kernels, and
I use several applications to test the results.  I use a less demanding game,
'prboom-plus', as a kind of canary; I use more demanding games like
'alien-arena' and 'torcs' as well.  All 3 of the games mentioned show a kind of
stuttering or hesitation if using the current git HEAD of drm-next or
drm-fixes, but 'prboom-plus' is affected to the point of being extremely
annoying, almost unplayable.

To reproduce, boot Linux 4.3 and play a few moments of 'prboom-plus'; then boot
a kernel built from drm-next or drm-fixes, then play 'prboom-plus' again.  The
effects are quite pronounced and obvious.  (The effects on 'alien-arena' and
'torcs' are much more subtle, and might easily go unnoticed, though someone
looking for a difference should easily be able to notice.)  None of the games
crash, but they are simply affected (to varying degrees) by a kind of
stuttering lag caused by the commit identified below by bisection.


Additional info:

I have reported this against DRI/Radeon but problem commit is touching code in
'drivers/gpu/drm/drm_irq.c', which does not seem limited to affecting only
Radeon.  (I am not a developer, so any comment I make about code can probably
be ignored.)  I would appreciate if the developers reading this would consider
whether I have reported the bug against the wrong product and/or component, and
make changes as appropriate!

In 'xorg.conf' I usually have "SwapbuffersWait" disabled with a stanza like
this:

    Section "Device"
      Identifier    "Configured Video Device"
      Driver        "radeon"
      Option        "DRI"              "3"
      Option        "SwapbuffersWait"  "off"
    EndSection

Changing the "SwapbuffersWait" setting has no effect on the symptoms of this
bug, however.


Bisection:

[I test future Radeon code in advance by cherry picking from drm-next and
drm-fixes changesets which touch Radeon DRM and core DRM.  Because of the
likelihood of error on my part, I never report bugs on one of these
Frankenstein kernels of my own making.  If I bisect a bug, I confirm that the
same buggy behavior is present upstream before reporting it.]

I first noticed this problem in early October, when I had made a local branch
from Linux 4.2.3 and cherry picked from DRM 4.3 and DRM 4.4 (up to cf648305). 
I noticed the bug described earlier immediately.  I didn't have much time to
troubleshoot, and assumed the error was my own, so I made a second local branch
from 4.2.3 and only cherry-picked from DRM 4.3 (up to 30c64664, my previously
working list of commits).

After Linux 4.3 was released, I tried again.  I made a local branch based on
4.3 and applied DRM 4.4 up to commit 5481c8fb.  The process went very smooth,
but the buggy behavior of my test programs (particularly 'prboom-plus') was
back again.  I decided to bisect my 4.3 + DRM 4.4 tree to identify where things
were going wrong.

The HEAD of my tree was clearly "bad" so I had a place to start.  I built Linux
4.3 without any cherry picks, and it was "good".  After 6 more builds, 'git
bisect' pointed at the following commit:

    commit 4dfd64862ff852df7b1198d667dda778715ee88f
    Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Date:   Mon Sep 14 22:43:51 2015 +0300

        drm: Use vblank timestamps to guesstimate how many vblanks were missed

Since the problem could still have been only in my Frankenstein local tree, I
built kernels from drm-next at commits 4dfd6486 and 4dfd6486^ (= 1b2eb710).  I
found that 4dfd6486 showed the buggy behavior, while 1b2eb710 did not.


I did notice that a regression against this same commit was noticed and
apparently fixed in this commit:

    commit fa4270d8e0257b4b76f11baa2866f4313d29aaf5
    Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Date:   Wed Sep 30 19:21:34 2015 +0300

        drm: Don't zero vblank timestamps from the irq handler

        [...]    
        This fixes a regression from
        4dfd64862ff852df drm: Use vblank timestamps to guesstimate how many
        vblanks were missed

This commit was present in my local Frankenstein tree, as well as both drm-next
and drm-fixes, and (obviously) does not fix the bug I am reporting.  The
problem
commit no doubt had other effects that were fixed by fa4270d8, but the
stuttering I am seeing was not fixed by it.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[-- Attachment #1.2: Type: text/html, Size: 8032 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2015-11-28  3:08 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-28  3:08 bugzilla-daemon [this message]
2015-11-28  3:10 ` [Bug 93147] [regression bisected] Stuttering in games caused by commit 4dfd6486 "drm: Use vblank timestamps to guesstimate how many vblanks were missed" bugzilla-daemon
2015-11-28  6:43 ` bugzilla-daemon
2015-11-28 13:11 ` bugzilla-daemon
2015-11-30  3:52 ` bugzilla-daemon
2015-11-30 20:12 ` bugzilla-daemon
2015-12-01  2:56 ` bugzilla-daemon
2015-12-01  2:57 ` bugzilla-daemon
2015-12-01 12:55 ` bugzilla-daemon
2015-12-01 13:26 ` bugzilla-daemon
2015-12-03 15:02 ` bugzilla-daemon
2015-12-03 17:35 ` bugzilla-daemon
2015-12-04  5:00 ` bugzilla-daemon
2015-12-04 15:10 ` bugzilla-daemon
2015-12-04 15:11 ` bugzilla-daemon
2015-12-04 15:13 ` bugzilla-daemon
2015-12-04 17:52 ` bugzilla-daemon
2015-12-04 20:16 ` bugzilla-daemon
2015-12-04 20:44 ` bugzilla-daemon
2015-12-05  1:04 ` bugzilla-daemon
2015-12-06  2:29 ` bugzilla-daemon
2015-12-18  8:16 ` bugzilla-daemon
2015-12-18 15:00 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-93147-502@http.bugs.freedesktop.org/ \
    --to=bugzilla-daemon@freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox