Summary: | [865g 3.16 regression] Desktop image is distorted | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Eugene <ken20001> | ||||||||||||||||||||||||||
Component: | DRM/Intel | Assignee: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||||||||||||||||||||||||
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||||||||||||||||||||||||
Severity: | major | ||||||||||||||||||||||||||||
Priority: | high | CC: | intel-gfx-bugs, ken20001 | ||||||||||||||||||||||||||
Version: | DRI git | ||||||||||||||||||||||||||||
Hardware: | x86-64 (AMD64) | ||||||||||||||||||||||||||||
OS: | Linux (All) | ||||||||||||||||||||||||||||
Whiteboard: | |||||||||||||||||||||||||||||
i915 platform: | i915 features: | ||||||||||||||||||||||||||||
Attachments: |
|
Description
Eugene
2015-01-06 14:21:37 UTC
Created attachment 111851 [details]
dmesg
Created attachment 111852 [details]
glxinfo
Created attachment 111853 [details]
Xorg.0.log
Created attachment 111854 [details]
Distorted desktop image screenshot
It looks like the desktop is in the right place, but incorrectly rendered. I would have said that was a userspace bug, except that if 3.15 works correctly... Would it be possible to do a bisection of i915.ko between 3.15 and 3.16? Update. There is no distortion with desktop effects turned off - rendering issue disappears. (In reply to Chris Wilson from comment #5) >Would it be possible to do a bisection of i915.ko between 3.15 > and 3.16? It's a pity but I don't know how to do it. But if you could explain me step-by-step I would try it. My preferred bisect howto: https://wiki.ubuntu.com/Kernel/KernelBisection (You need to scroll down for bisecting upstream versions a bit). If I had to guess, I would say that it was the ddx screwing up with userptr. Slightly quicker than doing a full bisect, if you download xf86-video-intel: $ sudo apt-get build-dep xserver-xorg-video-intel $ git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-intel edit line 71 of src/sna/kgem.c to read: #define DBG_NO_USERPTR 1 $ ./autogen.sh --prefix=/usr $ make && sudo make install And retest. Sorry but I didn't understand anything. I discovered only that 3.15.10 is the last "good" and 3.16.0 is the first bad. So what I should do? All I understood is I should install git. Thank also I need obtain kernel sources. But from what place: from kernel.org or using 'git clone git://kernel.ubuntu.com/ubuntu/ubuntu-utopic.git' command? I did the last one but then: git log --oneline Ubuntu-3.15.10..Ubuntu-3.16.0 fatal: ambiguous argument 'Ubuntu-3.15.10..Ubuntu-3.16.0': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' P.S. Sorry, never did it. Ok, what I've done: $ sudo apt-get build-dep xserver-xorg-video-intel $ git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-intel edit line 71 of src/sna/kgem.c to read: #define DBG_NO_USERPTR 1 $ ./autogen.sh --prefix=/usr $ make && sudo make install The image became fine after reboot but libGL error still is: glxinfo | grep render libGL error: failed to create dri screen libGL error: failed to load driver: i915 direct rendering: Yes GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, GLX_MESA_query_renderer, GLX_OML_swap_method, GLX_SGIS_multisample, OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 128 bits) GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, GL_NV_blend_square, GL_NV_conditional_render, GL_NV_depth_clamp, Also: dmesg | grep error [ 66.825508] [drm] GPU crash dump saved to /sys/class/drm/card0/error I think that's the same as I've already discribe in: https://bugs.freedesktop.org/show_bug.cgi?id=86583 So, should I try bisect still? Thanks. Created attachment 111984 [details]
/sys/class/drm/card0/error
(In reply to Eugene from comment #11) > Ok, what I've done: > > $ sudo apt-get build-dep xserver-xorg-video-intel > $ git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-intel > > edit line 71 of src/sna/kgem.c to read: > #define DBG_NO_USERPTR 1 > > $ ./autogen.sh --prefix=/usr > $ make && sudo make install > > The image became fine after reboot ... > > So, should I try bisect still? It seems clear as to what the trigger is, so no bisect necessary. Can you reset src/sna/kgem.c (i.e. reenable userptr) and compile with ./configure --enable-debug=full, reproduce and attach the Xorg.0.log (you will need to compress it!). (In reply to Eugene from comment #12) > Created attachment 111984 [details] > /sys/class/drm/card0/error That error state is nasty. It implies incoherence with the CS (*ACTHD != IPEHR). >Can you reset src/sna/kgem.c (i.e. reenable userptr) and compile with ./configure --enable-debug=full, reproduce and attach the Xorg.0.log (you will need to compress it!).
Yes, I've already did:
make uninstall
and did reinstall "xserver-xorg-video-intel" package.
So, instead of:
./autogen.sh --prefix=/usr
I should run
./configure --enable-debug=full ?
Or I should run first
./autogen.sh --prefix=/usr
and then:
./configure --enable-debug=full
both?
Just "./autogen.sh --prefix=/usr --enable-debug=full" will do :) I hope this actually triggers a FatalError catching the error in progress, so watch this space... Created attachment 112011 [details]
Xorg.0.log (xz compressed)
Done. But it seems nothing special in Xorg.0.log. Any additional info? Please, ask. Wait a minute, It seems I should reboot that machine to catch backtrace (you need backtrace, ah?). So it is in Xorg.0.log.old file in attachment. Created attachment 112013 [details]
Xorg.0.log with backtrace
Looks like userptr is being used with ShmPixmaps, that's useful to know. It blew up dereferencing a mmap(wc) pointer. That's new with drm-intel-nightly. Looks like I forgot some sigtrap safe-guards. This should handle that failure, thanks: commit e0463036bbd4e5f0201e122f9b29dd776ba4446f Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Jan 9 16:45:32 2015 +0000 sna: Replace assert with conditional setting of sna_pixmap->mapped The status of sna_pixmap->mapped was changed with the introduction of mmap(wc), but the code was still asserting that the mmap could only be cached. References: https://bugs.freedesktop.org/show_bug.cgi?id=88112#c20 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Please could you update and retest. >sna: Replace assert with conditional setting of sna_pixmap->mapped
>Please could you update and retest.
Please, explain what to do: in which file what to change ?
$ cd xf86-video-intel $ git pull $ make && sudo make install Now you are ready for retesting Created attachment 112020 [details]
Xorg.0.log.old with backtrace2
Backtrace again. And now I can't see desktop at all - black screen. Silly, silly me. I rewrote one line too many before pushing. :( Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Jan 9 17:58:24 2015 +0000 sna: Actually set the priv->mapped type for mmap(wc) A glitch from the last patch forgot to set the priv->mapped flag correctly after setting up a mmap(wc). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Hopefuly, if you update again, we should be closer to getting to the original bug. :) Created attachment 112024 [details]
Xorg.0.log.old (no backtrace but errors)
This time no backtrace, but errors still is. Also screen is distorted it seems more than earlier. Thanks. That we don't hit an assert is a little daunting - I have the obvious bugs already tested for, so I have to look for something that didn't occur to me in the first place... What does the corruption now look like? Created attachment 112026 [details]
desktop screen (through teamviewer)
The real image may be slightly better. But not too much.
Spotted one issue in that the new detiling routines are incorrect for gen2, so I've disabled those: commit 836f9e11d67356babc80464f1183b907cb6cb2f2 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Jan 9 19:55:41 2015 +0000 sna: Disable detiling for gen2 gen2 use a different tile layout to all the other generations, and are not supported by the existing routines. Disable for now. References: https://bugs.freedesktop.org/show_bug.cgi?id=88112 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> does that restore the original corruption (if you git pull and rebuild)? Implementation looked straightforward, so commit ebdc4d1eeb23604cf5c57c3d3a70629af041297d Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Jan 9 20:15:36 2015 +0000 sna: Add basic unswizzled manual detilers for gen2 gen2 uses a unique tile setup, and as far as we known, no swizzling. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Spotted one issue in that the new detiling routines are incorrect for gen2,
> so I've disabled those:
>
> commit 836f9e11d67356babc80464f1183b907cb6cb2f2
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date: Fri Jan 9 19:55:41 2015 +0000
>
> sna: Disable detiling for gen2
>
> gen2 use a different tile layout to all the other generations, and are
> not supported by the existing routines. Disable for now.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=88112
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>
> does that restore the original corruption (if you git pull and rebuild)?
The screen began to look fine. In a minute I'll add screenshot and Xorg log which is downloading now from remote machine. But errors in it still presents.
Created attachment 112028 [details]
Xorg.0.log.old (still errors; no backtrace)
Created attachment 112029 [details]
Screenshot of an image (good)
(In reply to Chris Wilson from comment #33) > Implementation looked straightforward, so > > commit ebdc4d1eeb23604cf5c57c3d3a70629af041297d > Author: Chris Wilson <chris@chris-wilson.co.uk> > Date: Fri Jan 9 20:15:36 2015 +0000 > > sna: Add basic unswizzled manual detilers for gen2 > > gen2 uses a unique tile setup, and as far as we known, no swizzling. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Image is also looks fine. But errors still there in Xorg.0.log: grep -i "(EE)" /var/log/Xorg.0.log (WW) warning, (EE) error, (NI) not implemented, (??) unknown. [ 35.678] (EE) intel: Failed to load module "present" (module does not exist, 0) [ 36.239] (EE) AIGLX error: Calling driver entry point failed [ 36.239] (EE) AIGLX: reverting to software rendering (In reply to Eugene from comment #37) > (In reply to Chris Wilson from comment #33) > > Implementation looked straightforward, so > > > > commit ebdc4d1eeb23604cf5c57c3d3a70629af041297d > > Author: Chris Wilson <chris@chris-wilson.co.uk> > > Date: Fri Jan 9 20:15:36 2015 +0000 > > > > sna: Add basic unswizzled manual detilers for gen2 > > > > gen2 uses a unique tile setup, and as far as we known, no swizzling. > > > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > Image is also looks fine. But errors still there in Xorg.0.log: Good. Thinking more about it, the incorrect detiling explains the original corruption, but I am not sure how the userptr test became a red herring. Anyway problem solved. > grep -i "(EE)" /var/log/Xorg.0.log > (WW) warning, (EE) error, (NI) not implemented, (??) unknown. > [ 35.678] (EE) intel: Failed to load module "present" (module does not > exist, 0) Not an issue, should really be a warning rather than error - the present extension won't be enabled if it doesn't exist. > [ 36.239] (EE) AIGLX error: Calling driver entry point failed > [ 36.239] (EE) AIGLX: reverting to software rendering Something is wrong with mesa, the call to dri2->createNewScreen() fails. Check your build? If you see the error from comment 12 again, please file a new bug. Thanks for the report and the testing! > [ 36.239] (EE) AIGLX error: Calling driver entry point failed > [ 36.239] (EE) AIGLX: reverting to software rendering >Something is wrong with mesa, the call to dri2->createNewScreen() fails. Check your build? What exactly to check? This issue was initially. I'm using MESA from oibaf ppa: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers?field.series_filter=utopic If you see the error from comment 12 again, please file a new bug. Thanks for the report and the testing! No, I'm not discovering it now. So, should I need to write a new report to: > [ 36.239] (EE) AIGLX error: Calling driver entry point failed > [ 36.239] (EE) AIGLX: reverting to software rendering ? |
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.