Bug 100295 - Regression in 16bpp between 1.18.3 and 1.18.4
Summary: Regression in 16bpp between 1.18.3 and 1.18.4
Status: RESOLVED MOVED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/modesetting (show other bugs)
Version: 7.7 (2012.06)
Hardware: Other Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-21 07:16 UTC by Alkis Georgopoulos
Modified: 2018-12-13 18:13 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log from 1.18.4 on kvm/cirrus with corrupted image (18.99 KB, text/plain)
2017-03-21 07:16 UTC, Alkis Georgopoulos
no flags Details

Description Alkis Georgopoulos 2017-03-21 07:16:54 UTC
Created attachment 130337 [details]
Xorg.0.log from 1.18.4 on kvm/cirrus with corrupted image

16bpp was working fine with the modesetting driver in xserver-xorg-core=1.18.3, but it's having various issues in 1.18.4, for example this corrupted dual image:
https://launchpadlibrarian.net/311563710/VirtualBox_Thin_20_03_2017_10_32_51.png

I've tested `xinit -- -depth 16` on 1.18.4 with the following combinations, all of which were working fine in 1.18.3:
VirtualBox: VirtualBox Graphics Adapter [80ee:beef] | vboxvideo | modeset | vboxdrmfb
==> Corrupted small double image

kvm -vga virtio: Red Hat, Inc Device [1af4:1050] | virtio-pci | modeset | virtiodrmfb
==> Corrupted small double image

kvm -vga cirrus: Cirrus Logic GD 5446 [1013:00b8] | cirrus | modeset | cirrusdrmfb
==> Corrupted small single image. It gets fixed if I change resolution with xrandr.

I'm attaching the Xorg.0.log of that last kvm/cirrus test.

Btw, in all those cases if I put "nomodeset" in the command line I end up using the VESA driver which doesn't have the issue.
Comment 1 Alkis Georgopoulos 2017-03-21 08:54:35 UTC
Another test that just verifies again that the regression is in modesetting, between 1.18.3 and 1.18.4.

I tried on real hardware:
[AMD/ATI] Wrestler [Radeon HD 7340] [1002:9808] | radeon | modeset | radeondrmfb

This one had an additional bug causing screen corruption, that I will ignore for now, and it also required Option "AccelMethod" "none".

So with 1.18.4 I got screen corruption: one big corrupted image filling the left half part of the screen and one smaller corrupted image to the top right.
It might be worthwhile to note that this corruption didn't show up when watching the same screen via VNC.

Then I only replaced (using scp) the /usr/lib/xorg/modules/drivers/modesetting_drv.so file with its 1.18.3 version, ran `xinit -- -depth 16` again, and there was no corruption anymore.
Comment 2 Alkis Georgopoulos 2017-03-21 09:35:36 UTC
I believe the problem was caused by:
https://cgit.freedesktop.org/xorg/xserver/commit/?id=21217d02168d1883b2d1f64399aec494f96a8b9d
modesetting: Implement 32->24 bpp conversion in shadow update

I tried rebuilding 1.18.4 after reverting it, and I no longer had screen corruption. I tested on kvm/cirrus and on the real radeon+modeset hardware.

Would it be possible to review or revert that patch?
Thank you.
Comment 3 Alkis Georgopoulos 2017-03-21 09:46:43 UTC
That commit also caused the crashes that I experienced on broadwell + modeset + 16bpp:
https://bugs.freedesktop.org/show_bug.cgi?id=100246

After reverting it, I no longer had any crashes.
Comment 4 Alkis Georgopoulos 2017-03-23 09:23:20 UTC
I tried this recent patch proposal:
https://lists.x.org/archives/xorg-devel/2017-March/053133.html

It works fine as long as I use a xorg.conf.
It even solves the crashes on Intel broadwell.

But when I'm using `xinit -- -depth 16` instead of a xorg.conf, then all the issues are still there.
Comment 5 GitLab Migration User 2018-12-13 18:13:24 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/75.


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.