Bug 111916 - xf86-video-intel - Scrambled (text, graphics) of menu and text area in Libreoffice.
Summary: xf86-video-intel - Scrambled (text, graphics) of menu and text area in Libreo...
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: high major
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-10-07 12:53 UTC by jb.1234abcd
Modified: 2019-10-08 04:01 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
xorg.log with bad xf86-video-intel driver (21.26 KB, text/plain)
2019-10-07 13:54 UTC, jb.1234abcd
no flags Details

Description jb.1234abcd 2019-10-07 12:53:43 UTC
Menu:
https://paste.pics/1fabfad29631c8a212280715e67be258

Text area:
note that some text is covered by small graphics;
also "Select all" highlights half of selected area (this pattern is also present
in above menu example (half text, half graphics)).
https://paste.pics/ffa7efdd9ea8d6919d1ad6790356b9c3

A fallback from
xf86-video-intel-1:2.99.917+892+gc6cb1b19-1
to previous version
xf86-video-intel 1:2.99.917+870+g6f4972d5-1
solved the problem.

Additional info:
* package version(s)
xf86-video-intel-1:2.99.917+892+gc6cb1b19-1
* config and/or log files etc.
* link to upstream bug report, if any

Steps to reproduce:
Open Libreoffice writer, select View (or some other) menu item to see it scrambled.
Input few lines of text in text area and see garbage graphics over some text.
"Select all" for those text lines and see half-highlighted selection.

Info:
$ uname -a
Linux r61i 5.3.4-arch1-1-ARCH #1 SMP PREEMPT Sat Oct 5 13:44:11 UTC 2019 x86_64 GNU/Linux

$ lspci -v
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
Subsystem: Lenovo ThinkPad T61/R61
Flags: bus master, fast devsel, latency 0
Capabilities: <access denied>
Kernel modules: intel_agp

00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 0c) (prog-if 00 [VGA controller])
Subsystem: Lenovo GM965 [X3100] on ThinkPad T61/R61
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at f8100000 (64-bit, non-prefetchable) [size=1M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 1800 [size=8]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: i915
Kernel modules: i915

00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) (rev 0c)
Subsystem: Lenovo GM965 [X3100] on ThinkPad T61/R61
Flags: bus master, fast devsel, latency 0
Memory at f8200000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>

No custom graphics config.
Comment 1 Chris Wilson 2019-10-07 13:05:03 UTC
Please attach Xorg.0.log, you never know maybe there's something interesting there.
Comment 2 Chris Wilson 2019-10-07 13:06:15 UTC
Anyway, it sounds like one of the no-op compiler fixes caused a functional change, the fastest way to identify which one would be with a git bisect.
Comment 3 Chris Wilson 2019-10-07 13:13:51 UTC
diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index d32bd583f..d03280edb 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -465,13 +465,9 @@ fallback:
        }
 
        br13 = 0xcc << 16;
-       switch (cpp) {
-       default:
-       case 4: cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
-               br13 |= 1 << 25; /* RGB8888 */
-       case 2: br13 |= 1 << 24; /* RGB565 */
-       case 1: break;
-       }
+       br13 |= sna_br13_color_depth(cpp * 4);
+       if (cpp == 4)
+               cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
 

This chunk, I guess. That cpp*4 should be cpp*8.
Comment 4 Chris Wilson 2019-10-07 13:23:40 UTC
commit bff5eca49b27cb47673123222a714d2a6f56287f (HEAD -> master, upstream/master)
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Oct 7 14:16:28 2019 +0100

    sna: Scale cpp by 8 for bit depth
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111916
    Fixes: 1804eacc85da ("sna: Add sna_br13_color_depth()")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

That's the only mistake I spotted in reading the git diff, so hopefully that's the one and only.
Comment 5 jb.1234abcd 2019-10-07 13:54:32 UTC
Created attachment 145674 [details]
xorg.log with bad xf86-video-intel driver
Comment 6 Ville Syrjala 2019-10-07 16:22:05 UTC
(In reply to Chris Wilson from comment #4)
> commit bff5eca49b27cb47673123222a714d2a6f56287f (HEAD -> master,
> upstream/master)
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Mon Oct 7 14:16:28 2019 +0100
> 
>     sna: Scale cpp by 8 for bit depth
>     
>     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111916
>     Fixes: 1804eacc85da ("sna: Add sna_br13_color_depth()")
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> 
> That's the only mistake I spotted in reading the git diff, so hopefully
> that's the one and only.

Managed to reproduce this myself, and that commit does the trick. Thanks.
Comment 7 jb.1234abcd 2019-10-07 16:34:49 UTC
I compiled the driver from source and that fixed the issue.
Let's keep the bug report open for a few days until I get Arch Linux to rebuild
the package, and if OK then I will close it.


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.