Bug 69528

Summary: intel driver shows blank screen when set to UXA only after cold start
Product: DRI Reporter: s.kno
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED INVALID QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: 3aditya3, holger.k, intel-gfx-bugs
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description s.kno 2013-09-18 13:30:37 UTC
Hardware: Dell Dimension 2400, Intel 845G (Intel 82845G/G[Brookdale-G]/GE rev 01)
Software: current ArchLinux, xorg-server-1.14.3-1, xf86-video-intel-2.21.15-1

newly installed system
with default rendering method (SNA?) X started fine but showed only reduced colors (256?)
so I set it to UXA (as described in the Archlinux Wiki)
then X worked fine at first
but after a cold start X showed only a blank screen (black with only the mouse pointer)
then I set it back to default setting (SNA?) and restarted X
as before X started fine but with reduced colors (256?)
then I set it back to UXA again and restarted X
and it suddenly worked again
after cold start again only blank screen (black with only the mouse pointer)


Also, no error messages in /var/log/Xorg.0.log.
Switching consoles doesn't help.
Cold start with default settings (SNA?) works.


I would suggest it could be a problem with initial hardware state when the driver is set to UXA. It might be specific to the chipset or even the system/bios.
Comment 1 Chris Wilson 2013-09-18 13:45:34 UTC
sna/gen2 uses 16bpp by default, use 

Section "Screen"
  Identifier "screen0"
  DefaultDepth 24
EndSection

or Xorg -depth 24 to specify a higher colour depth (at quite a dramatic cost to performance, the igp is very bw limited).
Comment 2 Jani Nikula 2013-12-17 13:03:32 UTC
(In reply to comment #1)
> sna/gen2 uses 16bpp by default, use 
> 
> Section "Screen"
>   Identifier "screen0"
>   DefaultDepth 24
> EndSection
> 
> or Xorg -depth 24 to specify a higher colour depth (at quite a dramatic cost
> to performance, the igp is very bw limited).

s.kno@web.de, was this helpful? Is this still an issue or can we close the bug?
Comment 3 Chris Wilson 2013-12-17 13:06:21 UTC
(In reply to comment #2)
> s.kno@web.de, was this helpful? Is this still an issue or can we close the
> bug?

We can't close it until we root cause why UXA shows a blank screen.
Comment 4 Adi H 2014-01-06 19:02:22 UTC
Hello, I am facing the exact same problem.

Debian jessie/testing i386 updated as of 6 January 2013.

$ uname -a
Linux jessie 3.12-1-686-pae #1 SMP Debian 3.12.6-2 (2013-12-29) i686 GNU/Linux

X.Org X Server 1.14.5
Release Date: 2013-12-12

$ dpkg -s xserver-xorg-video-intel
Package: xserver-xorg-video-intel
Status: install ok installed
Architecture: i386
Source: xserver-xorg-video-intel (2:2.21.15-1)
Version: 2:2.21.15-1+b2

$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface [8086:2560] (rev 01)
00:02.0 VGA compatible controller [0300]: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device [8086:2562] (rev 01)

This snippet is to be used with which AccelMethod? SNA or UXA?
Section "Screen"
  Identifier "screen0"
  DefaultDepth 24
EndSection

With SNA, color gradients don't get rendered smoothly, they appear in ugly discrete steps.

With UXA, lightdm doesn't start. I get blank screen.

So my weird workaround is: Start lightdm in UXA mode; replace SNA with UXA in xorg.conf; log in and start session in UXA mode.

Why does UXA fail to work the first time? It only works second time onwards.

I need to get this bug solved. How can I help you debug this?
Comment 5 Chris Wilson 2014-01-06 19:48:37 UTC
If you think 16-bit rendering appears bad on your display, don't use 16-bit...
Comment 6 Adi H 2014-01-07 09:28:21 UTC
Ok, using the "DefaultDepth 24" directive with SNA, gets rid of the gradient rendering problem. But there is still a problem of portions of windows not getting repainted/updated spontaneously.

Steps to reproduce: start playing a video in VLC player; activate another window (eg. firefox) by clicking in it.
What happens: the video frame of VLC becomes completely black, only audio's playing
What should have happened: the video should continue to render

If I resize VLC player or stop-start the video, the video appears again. Click on another window and the video frame of VLC blacks out again.


$ cat /etc/X11/xorg.conf 
Section "Device"
	Identifier "device0"
	Driver "intel"
	Option "AccelMethod" "SNA"
EndSection

Section "Screen"
	Identifier "screen0"
	DefaultDepth 24
EndSection



$ cat /var/log/Xorg.0.log
....
....
....
[    22.229] (II) intel(0): SNA compiled: xserver-xorg-video-intel 2:2.21.15-1+b2 (amd64 / i386 Build Daemon (babin) <buildd-babin@buildd.debian.org>)
[    22.270] (II) intel(0): Creating default Display subsection in Screen section
	"screen0" for depth/fbbpp 24/32
[    22.270] (**) intel(0): Depth 24, (--) framebuffer bpp 32
[    22.271] (==) intel(0): RGB weight 888
[    22.271] (==) intel(0): Default visual is TrueColor
[    22.271] (**) intel(0): Option "AccelMethod" "SNA"
[    22.271] (--) intel(0): Integrated Graphics Chipset: Intel(R) 845G
[    22.272] (--) intel(0): CPU: x86, sse2
[    22.272] (**) intel(0): Framebuffer tiled
[    22.272] (**) intel(0): Pixmaps tiled
[    22.272] (**) intel(0): "Tear free" disabled
[    22.272] (**) intel(0): Forcing per-crtc-pixmaps? no
[    22.272] (II) intel(0): Output VGA1 has no monitor section
[    22.272] (--) intel(0): Output VGA1 using initial mode 1600x900 on pipe 0
[    22.272] (==) intel(0): DPI set to (96, 96)
[    22.272] (II) Loading sub module "dri2"
[    22.272] (II) LoadModule: "dri2"
[    22.272] (II) Module "dri2" already built-in
[    22.272] (==) Depth 24 pixmap format is 32 bpp
[    22.397] (II) intel(0): SNA initialized with Almador (gen2) backend
[    22.397] (==) intel(0): Backing store disabled
[    22.397] (==) intel(0): Silken mouse enabled
[    22.398] (II) intel(0): HW Cursor enabled
[    22.398] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[    22.436] (==) intel(0): DPMS enabled
[    22.436] (II) intel(0): Textured video not supported on this hardware
[    22.496] (II) intel(0): [DRI2] Setup complete
[    22.496] (II) intel(0): [DRI2]   DRI driver: i915
[    22.496] (II) intel(0): direct rendering: DRI2 Enabled
[    22.496] (==) intel(0): hotplug detection: "enabled"
[    22.496] (--) RandR disabled
[    22.556] (II) SELinux: Disabled on system
[    23.277] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[    23.277] (II) AIGLX: enabled GLX_INTEL_swap_event
[    23.277] (II) AIGLX: enabled GLX_ARB_create_context
[    23.277] (II) AIGLX: enabled GLX_ARB_create_context_profile
[    23.277] (II) AIGLX: enabled GLX_EXT_create_context_es2_profile
[    23.277] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
[    23.277] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
[    23.278] (II) AIGLX: Loaded and initialized i915
[    23.278] (II) GLX: Initialized DRI2 GL provider for screen 0
[    23.303] (II) intel(0): switch to mode 1600x900@60.0 on pipe 0 using VGA1, position (0, 0), rotation normal
[    23.320] (II) intel(0): Setting screen physical size to 423 x 238
....
....
....
Comment 7 Adi H 2014-01-07 11:44:16 UTC
Using the "DefaultDepth 24" directive with UXA, I get a partially black screen. Some UI elements of lightdm are visible like the username and password text fields. It seems lightdm has loaded but not completely rendered to the display. Only those UI elements with which I have interacted, are visible. Also text appears jumbled and missing characters. UI elements start getting visbile only after I have clicked on them.

So I have problems with both UXA and SNA AccelMethods.
* The only problem with UXA is the one described above and which occurs only during the first run of X server. It works second run onwards.
* The problem with SNA is involuntary repaintng of portions of windows (described in my previous comment)
Comment 8 Chris Wilson 2014-01-09 16:01:31 UTC
Ok, fired up my trusty 845g and verified that basic overlay works with mplayer. Which video backend does VLC use (gl, Xv), and which window-manager/compositor do you use?
Comment 9 Chris Wilson 2014-01-09 16:51:35 UTC
I haven't encountered any problems using vlc or mplayer on this 845g using awesome as my window manager and depth 15, 16 or 24.
Comment 10 Adi H 2014-01-16 14:14:33 UTC
Using SNA:

If I go to VLC preferences->Video and set Ouput to "X11 video output (XCB)", the video runs properly.

Setting the VLC output to "XVideo output (XCB)" causes the problem described in comment 6.

"OpenGL GLX video output (XCB)" works as well, but with noticeably more CPU usage than "X11 video output (XCB)".

I am using Xfce 4.10, so the window manager is xfwm4. I had Xfce's (Settings->Window Manager Tweaks) inbuilt compositor turned on.

So execpt "Xvideo output" and appearance of minor artifacts on Xfce's panel which go away once I hover mouse pointer over the panel, over all graphics is working nice enough.

# cat /etc/X11/xorg.conf 
Section "Device"
	Identifier "device0"
	Driver "intel"
	Option "AccelMethod" "SNA"
EndSection

Section "Screen"
	Identifier "screen0"
	DefaultDepth 24
EndSection
Comment 11 Chris Wilson 2014-01-17 13:44:57 UTC
I followed your instructions (debian/sid, sna depth 24, xfce4, vlc using Xv, xf86-video-intel/tests/vsync.avi, and firefox/terminal) and tried to reproduce the failure with both 2.21.15 and 2.99.907. The output never failed.

This is with drm-intel-nightly, but 3.12 isn't old enough to cause concern. :|
Comment 12 Chris Wilson 2014-01-23 17:39:03 UTC
This should fix the corruption in the panel:

commit e916c922ce3913712cd8a9b76ab037840b7f07f1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jan 23 17:30:29 2014 +0000

    sna: Avoid erroneous discarding operations for partial composites
    
    Composite operations were presumed to cover their entire width x height
    area. However, a few paths submit boxes that do not cover the clip
    region and so the optimisation made during prepare to discard completely
    overwritten data is incorrect (and leads to corruption - stale data is
    seen which the client expected to have been overdrawn). So along these
    more unusual paths, we must add a flag to prevent the overzealous
    discard. Notably, xfce4 triggers this as it uses a lot of unantialiased
    trapezoids in its theme drawing.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=69528
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 13 Rodrigo Vivi 2014-10-08 22:23:27 UTC
Timeout. Please reopen if you still face this issue with latest kernel and latest xf86-video-intel

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.