Bug 89730 - NV50: LightDM GTK+ Greeter Background - inconsistent display
Summary: NV50: LightDM GTK+ Greeter Background - inconsistent display
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: git
Hardware: Other Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-23 12:56 UTC by poma
Modified: 2015-06-04 06:08 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
NV50 log (13.40 KB, text/plain)
2015-03-25 01:35 UTC, poma
no flags Details
nv50_exa NV50EXAPrepareComposite rm (2.01 KB, text/plain)
2015-03-28 06:03 UTC, poma
no flags Details
kick pushbuf before mapping bo (585 bytes, patch)
2015-05-27 18:33 UTC, Ilia Mirkin
no flags Details | Splinter Review
lightdm and greeter log (7.62 KB, text/plain)
2015-05-29 04:20 UTC, poma
no flags Details
x11trace.log (194.15 KB, application/octet-stream)
2015-05-29 04:30 UTC, poma
no flags Details
x11trace.log OK (58.15 KB, application/octet-stream)
2015-05-31 22:22 UTC, poma
no flags Details

Description poma 2015-03-23 12:56:31 UTC
LightDM GTK+ Greeter Background - inconsistent display


Tested HW:

- Family : NV50
  Chipset: G98 (NV98) / MCP79/MCP7A (NVAC)
      GeForce 8400 GS / ION VGA

nouveau.ko & nouveau_drv.so     - BROKEN
nouveau.ko & modesetting_drv.so - OK
nvidia.ko & nvidia_drv.so       - OK
~~~~~~~~~~~~~~

- Family : NV30
  Chipset: NV34 (NV34)
       GeForce FX 5200

nouveau.ko & nouveau_drv.so     - OK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Tested SW:

- lightdm-gtk-2.0.0-2.fc21.x86_64
- lightdm-gtk-greeter_2.0.0-0ubuntu1_amd64
- xorg-x11-drv-nouveau 1.0.7 to 1.0.11 & git

~~~~~~~~~~~~~~

As shown here:
http://goo.gl/jHUkbS

~~~~~~~~

Comment:
Whatever is actually happening here is not evident in the logs:
dmesg, Xorg.*.log, lightdm.log(DEBUG) and x-*-greeter.log(DEBUG).

Top of the "greeter.png"
/etc/lightdm/lightdm-gtk-greeter.conf:
background=/etc/lightdm/greeter.png

is partially visible through the transparent panel:
https://github.com/shimmerproject/Greybird/blob/master/gtk-3.0/apps/lightdm-gtk-greeter.css#L14

and is fully revealed only after clicking the "Log In" or "Unlock" button (ENTER key), 
or toggling the accessibility features such as "Large Font" (F1 key) and "High Contrast" (F2 key).

It is important to note the Greeter Background display inconsistency occurs entirely after the booting from the "Soft Off" (S5).
And with regard to the re-booting, it is unpredictable in itself, i.e. the Greeter Background may be displayed or may not.



Ref.
http://lists.freedesktop.org/archives/lightdm/2015-March/000773.html
Comment 1 Ilia Mirkin 2015-03-23 13:11:38 UTC
I may be slow... but I don't fully comprehend what the problem is. Note that I'm not familiar with lightdm beyond it being an xdm replacement.

Is it using X or GL to do the displaying? I note that CSS is being used -- do you know what processes this?

Perhaps you can get a lightdm person to help with debugging?
Comment 2 Ilia Mirkin 2015-03-23 13:19:51 UTC
Here's a simple patch to try... *no* idea if it'll help. I assume not, but who knows. [Patch to xf86-video-nouveau.]

diff --git a/src/nv50_accel.c b/src/nv50_accel.c
index 5efbd19..ecad602 100644
--- a/src/nv50_accel.c
+++ b/src/nv50_accel.c
@@ -207,6 +207,8 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
 	PUSH_DATA (push, 0);
 	BEGIN_NV04(push, NV50_3D(COLOR_MASK_COMMON), 1);
 	PUSH_DATA (push, 1);
+	BEGIN_NV04(push, NV50_3D(ZETA_ENABLE), 1);
+	PUSH_DATA (push, 0);
 
 	BEGIN_NV04(push, NV50_3D(TIC_ADDRESS_HIGH), 3);
 	PUSH_DATA (push, (pNv->scratch->offset + TIC_OFFSET) >> 32);
Comment 3 poma 2015-03-23 17:04:48 UTC
(In reply to Ilia Mirkin from comment #1)
> I may be slow... but I don't fully comprehend what the problem is. Note that
> I'm not familiar with lightdm beyond it being an xdm replacement.
> 
> Is it using X or GL to do the displaying? I note that CSS is being used --
> do you know what processes this?
> 
> Perhaps you can get a lightdm person to help with debugging?

I left a note on the lightdm@lists.freedesktop.org, so devs can comment here.

LightDM is the display manager - it starts the X server and greeter (login screen) - in this case LightDM GTK+ Greeter.
Comment 4 poma 2015-03-23 17:06:18 UTC
(In reply to Ilia Mirkin from comment #2)
> Here's a simple patch to try... *no* idea if it'll help. I assume not, but
> who knows. [Patch to xf86-video-nouveau.]
> 
> diff --git a/src/nv50_accel.c b/src/nv50_accel.c
> index 5efbd19..ecad602 100644
> --- a/src/nv50_accel.c
> +++ b/src/nv50_accel.c
> @@ -207,6 +207,8 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
>  	PUSH_DATA (push, 0);
>  	BEGIN_NV04(push, NV50_3D(COLOR_MASK_COMMON), 1);
>  	PUSH_DATA (push, 1);
> +	BEGIN_NV04(push, NV50_3D(ZETA_ENABLE), 1);
> +	PUSH_DATA (push, 0);
>  
>  	BEGIN_NV04(push, NV50_3D(TIC_ADDRESS_HIGH), 3);
>  	PUSH_DATA (push, (pNv->scratch->offset + TIC_OFFSET) >> 32);


With this nouve git:
http://cgit.freedesktop.org/nouveau/xf86-video-nouveau/

dunno whether it is proper position, but comparing with the NV50_3D(ZETA_ENABLE) in src/nvc0_accel.c
your patch fit like this:

diff --git a/src/nv50_accel.c b/src/nv50_accel.c
index b27f67a..50b3a08 100644
--- a/src/nv50_accel.c
+++ b/src/nv50_accel.c
@@ -207,6 +207,8 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
 	PUSH_DATA (push, 0);
 	BEGIN_NV04(push, SUBC_3D(0x0f90), 1);
 	PUSH_DATA (push, 1);
+	BEGIN_NV04(push, NV50_3D(ZETA_ENABLE), 1);
+	PUSH_DATA (push, 0);
 
 	BEGIN_NV04(push, NV50_3D(TIC_ADDRESS_HIGH), 3);
 	PUSH_DATA (push, (pNv->scratch->offset + TIC_OFFSET) >> 32);


Nevertheless it still has no effect.

With regard to your question - GL, I tried the following:
options nouveau noaccel=1

and it has a positive effect - Greeter Background is displayed correctly.

After all this, if I understand it correctly:
1. Family : NV30 / Chipset: NV34 (NV34) / GeForce FX 5200 
   because it has no problemos in this case - per se is not accelerated?
2. the same applies if the modesetting is used - not accelerated?
3. also there is no problemos if nouveau noaccel=1 is used - not accelerated?

Perhaps this is flaw within the greeter application then?
Comment 5 Ilia Mirkin 2015-03-23 17:21:29 UTC
(In reply to poma from comment #4)
> dunno whether it is proper position, but comparing with the
> NV50_3D(ZETA_ENABLE) in src/nvc0_accel.c
> your patch fit like this:

Yes, this is what I had in mind. On my local branch I've replaced a bunch of the 0xbla values with names :) Thanks for testing, it was a long shot though.

> Nevertheless it still has no effect.
> 
> With regard to your question - GL, I tried the following:
> options nouveau noaccel=1
> 
> and it has a positive effect - Greeter Background is displayed correctly.
> 
> After all this, if I understand it correctly:
> 1. Family : NV30 / Chipset: NV34 (NV34) / GeForce FX 5200 
>    because it has no problemos in this case - per se is not accelerated?

Nope, it's accelerated. Just all the acceleration logic is different, it's very different hardware.

> 2. the same applies if the modesetting is used - not accelerated?

Right. Or perhaps it's using glamor to implement EXA? Depends on the modesetting version.

> 3. also there is no problemos if nouveau noaccel=1 is used - not accelerated?

Right, not accelerated. You can be more targeted and set Option "AccelMethod" "none" in your xorg.conf which will only disable 2d accel via the ddx. Or you can try setting it to "glamor" and see if the problem goes away.

> 
> Perhaps this is flaw within the greeter application then?

Perhaps. Would be nice to know wtf the application is doing in the first place, then we may be able to work out where the issue might lie. At this point I don't know if it's using X or GL for drawing this stuff to the screen, which are very different paths.
Comment 6 poma 2015-03-24 06:46:21 UTC
Thanks for the "not accelerated?" clarification.

I also tested Greeter Background loading with these two options,

a) Option "AccelMethod" "none" - works.

b) Option "AccelMethod" "glamor" - works conditionally,
with:
Xfwm4 - Xfce4 window manager
- enabled display compositing
- enabled synchronize drawing to the vertical blank

when 'glxinfo' starts, X crashes:

X.Org X Server 1.16.3

(**) NOUVEAU(0): Option "AccelMethod" "glamor"
(II) Loading sub module "glamoregl"
(II) LoadModule: "glamoregl"
(II) Loading /usr/lib64/xorg/modules/libglamoregl.so
(II) Module glamoregl: vendor="X.Org Foundation"
(II) glamor: OpenGL accelerated X.org driver based.
(II) glamor: EGL version 1.4 (DRI2):
(II) NOUVEAU(0): [GLAMOR] EGL initialised
(==) NOUVEAU(0): GLX sync to VBlank enabled.

(EE) NOUVEAU(0): [COPY] failed to allocate class.
(II) NOUVEAU(0): [GLAMOR] initialised

(II) AIGLX: Screen 0 is not DRI2 capable
(EE) AIGLX: reverting to software rendering
(II) AIGLX: Loaded and initialized swrast
(II) GLX: Initialized DRISWRAST GL provider for screen 0

(EE) 
(EE) Backtrace:
(EE) 0: /usr/libexec/Xorg.bin (OsLookupColor+0x119) [0x59c739]
(EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f55eb9b795f]
(EE) 2: /usr/libexec/Xorg.bin (present_event_notify+0xb88) [0x51be48]
(EE) 3: /usr/libexec/Xorg.bin (RegisterResourceName+0x232) [0x45c302]
(EE) 4: /usr/libexec/Xorg.bin (FreeClientResources+0x6c) [0x45d1fc]
(EE) 5: /usr/libexec/Xorg.bin (CloseDownClient+0x70) [0x438610]
(EE) 6: /usr/libexec/Xorg.bin (SendErrorToClient+0x32e) [0x4391ee]
(EE) 7: /usr/libexec/Xorg.bin (remove_fs_handlers+0x416) [0x43d316]
(EE) 8: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f55eb9a2fe0]
(EE) 9: /usr/libexec/Xorg.bin (_start+0x29) [0x4276ee]
(EE) 10: ? (?+0x29) [0x29]
(EE) 
(EE) Segmentation fault at address 0x84969893a9
(EE) 
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE) 
(EE) 
Please consult the Fedora Project support 
	 at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
(II) NOUVEAU(0): NVLeaveVT is called.
(EE) Server terminated with error (1). Closing log file.
Comment 7 andrew p. 2015-03-24 18:56:25 UTC
Some clarifications:
- Greeter is usual GTK3 application.
- No WM or compositor run in greeter session.
- Greeter creates one GtkWindow for each monitor.
- Greeter uses standard cairo functions to draw monitor's window background.

There are no "login" or "panel" windows - just child widgets inside fullscreen window.
This grey color looks like default window color - just set "background=#default" to see it.
So, the question - why gtk draw semi-transparent panel correctly (using parent window background as base) and do not do it for "free" space.

Add "allow-debugging=true" option to lightdm-gtk-greeter.conf to get more informative log.

Some questions:
1. What happened if background is color (#0f0)? I don't expect that there will be any difference, just interesting.
2. Another gtk theme? Or empty "theme-name=".

I saw very similar bug some time ago - laptop with archlinux and catalyst. In some cases gtk didn't draw whole windows except some widgets (text entries - blinking cursor). But this bug is gone now.
Comment 8 Ilia Mirkin 2015-03-24 19:00:31 UTC
Well, given that it works OK with glamor (and other hardware), this feels most likely to be a bug in the EXA implementation somewhere. There's a weird bug where if you do some crazy things you can get stale window contents... this doesn't feel like that one though. Could be a compositing or who knows what issue.

In a *perfect* world, there would be a simple stand-alone app that reproduces this, and we can use that to debug. Not sure how feasible that is.
Comment 9 poma 2015-03-25 01:29:55 UTC
(In reply to andrew p. from comment #7)
> Some clarifications:
> - Greeter is usual GTK3 application.
> - No WM or compositor run in greeter session.
> - Greeter creates one GtkWindow for each monitor.
> - Greeter uses standard cairo functions to draw monitor's window background.
> 
> There are no "login" or "panel" windows - just child widgets inside
> fullscreen window.
> This grey color looks like default window color - just set
> "background=#default" to see it.
> So, the question - why gtk draw semi-transparent panel correctly (using
> parent window background as base) and do not do it for "free" space.
> 
> Add "allow-debugging=true" option to lightdm-gtk-greeter.conf to get more
> informative log.
> 
> Some questions:
> 1. What happened if background is color (#0f0)? I don't expect that there
> will be any difference, just interesting.
> 2. Another gtk theme? Or empty "theme-name=".
> 

Color codes work OK, theme also does not affect the final outcome.
background color (#0f0) - green, works OK as any other.

> I saw very similar bug some time ago - laptop with archlinux and catalyst.
> In some cases gtk didn't draw whole windows except some widgets (text
> entries - blinking cursor). But this bug is gone now.

Thanks for answering.
Comment 10 poma 2015-03-25 01:35:17 UTC
Created attachment 114602 [details]
NV50 log


Whatever is actually happening here is not evident in the logs:
dmesg, Xorg.*.log, lightdm.log(DEBUG) and x-*-greeter.log(DEBUG).

However, here we go.

As Ilia concluded, EXA is a puzzle here.
Comment 11 poma 2015-03-27 07:40:05 UTC
This also works but it looks like another variations on a theme - not accelerated.

Section "Device"
    Identifier "video0"
    Driver     "nouveau"
    Option "ShadowFB" "on"
EndSection

Option "ShadowFB" "boolean"
    Enable or disable use of the shadow framebuffer layer.  Default: off.
    If this option is enabled, the driver will cause the CPU to do each drawing operation first into
    a shadow frame buffer in system virtual memory and then copy the result into video memory.
    If this option is not active, the CPU will draw directly into video memory.
    Enabling this option is beneficial for those systems where reading from video memory is, on average, 
    slower than the corresponding read/modify/write operation in system virtual memory.
    This is normally the case for PCI or AGP adapters, and, so, this option is enabled by default unless acceleration is enabled.


[0.706] X Protocol Version 11, Revision 0
[0.706] Build ID: xorg-x11-server 1.17.1-9.fc21 
[0.706] Current version of pixman: 0.32.6
[0.859] (II) Module ABI versions:
[0.859] 	X.Org ANSI C Emulation: 0.4
[0.859] 	X.Org Video Driver: 19.0
[0.859] 	X.Org Server Extension : 9.0
[0.863] (II) LoadModule: "glx"
[0.863] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[0.864] (II) Module glx: vendor="X.Org Foundation"
[0.865] 	compiled for 1.17.1, module version = 1.0.0
[0.865] 	ABI class: X.Org Server Extension, version 9.0
[0.865] (==) AIGLX enabled
[0.865] (II) LoadModule: "nouveau"
[1.364] (II) Loading /usr/lib64/xorg/modules/drivers/nouveau_drv.so
[1.372] (II) Module nouveau: vendor="X.Org Foundation"
[1.372] 	compiled for 1.17.1, module version = 1.0.11
[1.372] 	Module class: X.Org Video Driver
[1.372] 	ABI class: X.Org Video Driver, version 19.0
[1.372] (II) NOUVEAU driver 
[1.373] (II) [drm] nouveau interface version: 1.2.1
[1.373] (II) Loading sub module "dri2"
[1.373] (II) LoadModule: "dri2"
[1.373] (II) Module "dri2" already built-in
[1.373] (--) NOUVEAU(0): Chipset: "NVIDIA NV98"
[1.373] (**) NOUVEAU(0): Option "ShadowFB" "on"
[1.373] (**) NOUVEAU(0): Using "Shadow Framebuffer" - acceleration disabled
[1.373] (==) NOUVEAU(0): Page flipping enabled
[1.373] (==) NOUVEAU(0): Swap limit set to 1 [Max allowed 2]
[1.373] (==) NOUVEAU(0): Page flipping synced to vblank by kernel.
[1.373] (II) NOUVEAU(0): Initializing outputs ...
[1.534] (II) Loading sub module "shadowfb"
[1.534] (II) LoadModule: "shadowfb"
[1.534] (II) Loading /usr/lib64/xorg/modules/libshadowfb.so
[1.534] (II) Module shadowfb: vendor="X.Org Foundation"
[1.534] 	compiled for 1.17.1, module version = 1.0.0
[1.534] 	ABI class: X.Org ANSI C Emulation, version 0.4
[1.534] (--) Depth 24 pixmap format is 32 bpp
[1.534] (**) NOUVEAU(0): [COPY] acceleration disabled
[1.535] (==) NOUVEAU(0): Backing store enabled
[1.535] (II) NOUVEAU(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[1.535] (--) RandR disabled
[1.539] (II) AIGLX: Screen 0 is not DRI2 capable
[1.539] (EE) AIGLX: reverting to software rendering
[3.245] (II) AIGLX: Loaded and initialized swrast
[3.284] (II) GLX: Initialized DRISWRAST GL provider for screen 0
...
Comment 12 poma 2015-03-27 17:38:08 UTC
Andrew,
among others, there is the Cairo GL backend.
Can be drawn backgrounds with it?


http://cairographics.org/backends
Comment 13 Ilia Mirkin 2015-03-27 17:41:54 UTC
poma, not sure what your skillset is... If you're comfortable modifying code, you could start hacking away at xf86-video-nouveau.

Take a look at src/nv50_exa.c -- there are a bunch of functions like NV50EXAPrepare*. In each of them, Just put as the first line (after variable decls) something like

NOUVEAU_FALLBACK("poma\n");

If you do it in all the prepare functions, I bet that the background will start to work. (And you will basically have no accel.). Figure out which operation is the one that causes all the trouble (by starting to remove the fallbacks). Once you figure out which high-level op it is, I can provide further instructions to narrow down the specific operation further.
Comment 14 poma 2015-03-28 06:03:59 UTC
Created attachment 114680 [details]
nv50_exa NV50EXAPrepareComposite rm

OR

diff --git a/src/nv50_exa.c b/src/nv50_exa.c
index 221160d..18a11a1 100644
--- a/src/nv50_exa.c
+++ b/src/nv50_exa.c
@@ -832,6 +832,8 @@ NV50EXAPrepareComposite(int op,
 {
 	NV50EXA_LOCALS(pdpix);
 
+	NOUVEAU_FALLBACK("poma\n");
+
 	if (!PUSH_SPACE(push, 256))
 		NOUVEAU_FALLBACK("space\n");
 	PUSH_RESET(push);


Both have a positive effect on Greeter Background image loading,
BUT produce various kinds of corruption within Desktop session.
Comment 15 poma 2015-03-29 23:15:02 UTC
I also tested all these extensions:

$ Xorg -extension ?
...
[mi] Only the following extensions can be run-time disabled:
[mi]    Generic Events
[mi]    Composite
[mi]    DAMAGE
[mi]    DOUBLE-BUFFER
[mi]    DPMS
[mi]    GLX
[mi]    MIT-SCREEN-SAVER
[mi]    MIT-SHM
[mi]    RANDR
[mi]    RENDER
[mi]    X-Resource
[mi]    XFree86-DGA
[mi]    XFree86-DRI
[mi]    XFree86-VidModeExtension
[mi]    XFIXES
[mi]    XINERAMA
[mi]    SELinux
[mi]    XTEST
[mi]    XVideo
...

RENDER disabled has a positive effect on Greeter Background image loading,
BUT it also turns off Xfwm4 compositing within Desktop session.

Section "Extensions"
    Option "RENDER" "Disable"
EndSection

[9.516] (**) Extension "RENDER" is disabled

~~~~~~~~~~~~~~~~~~~

Apart from all this, with XVideo disabled, X crashes.

Section "Extensions"
    Option "XVideo" "Disable"
EndSection

[9.251] (EE) 
[9.251] (EE) Backtrace:
[9.251] (EE) 0: /usr/libexec/Xorg (OsSigHandler+0x29) [0x598659]
[9.251] (EE) 1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7f7961a060cf]
[9.252] (EE) 2: /usr/libexec/Xorg (xf86XvMCScreenInit+0x24) [0x494494]
[9.252] (EE) 3: /usr/lib64/xorg/modules/drivers/nouveau_drv.so (vlInitXvMC+0x69) [0x7f795d532929]
[9.252] (EE) 4: /usr/lib64/xorg/modules/drivers/nouveau_drv.so (NVInitVideo+0x138) [0x7f795d514808]
[9.252] (EE) 5: /usr/lib64/xorg/modules/drivers/nouveau_drv.so (NVScreenInit+0x3c6) [0x7f795d51a086]
[9.252] (EE) 6: /usr/libexec/Xorg (AddScreen+0x101) [0x43a4e1]
[9.253] (EE) 7: /usr/libexec/Xorg (InitOutput+0x3e1) [0x47c501]
[9.253] (EE) 8: /usr/libexec/Xorg (dix_main+0x1ea) [0x43e0ca]
[9.253] (EE) 9: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f7961658fe0]
[9.254] (EE) 10: /usr/libexec/Xorg (_start+0x29) [0x42876e]
[9.254] (EE) 11: ? (?+0x29) [0x29]
[9.254] (EE) 
[9.254] (EE) Segmentation fault at address 0x4
[9.254] (EE) 
Fatal server error:
[9.254] (EE) Caught signal 11 (Segmentation fault). Server aborting
[9.254] (EE) 
[9.254] (EE) 
Please consult the Fedora Project support 
	 at http://wiki.x.org
 for help. 
[9.254] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[9.254] (EE) 
[9.259] (EE) Server terminated with error (1). Closing log file.
Comment 16 poma 2015-03-30 06:10:58 UTC
Within nv50_exa.c, regardless of the function or statement FALLBACK-ed,
commented or deleted, at best, the effect is the same as with disabling EXA Composite.

It has a positive effect on Greeter Background image loading,
BUT produce at least corruption of some of the icons within Desktop session.


Section "Device"
    Identifier "video0"
    Driver     "nouveau"
    Option     "EXANoComposite" "Yes"
EndSection


[8.266] (II) Loading sub module "exa"
[8.266] (II) LoadModule: "exa"
[8.266] (II) Loading /usr/lib64/xorg/modules/libexa.so
[8.266] (II) Module exa: vendor="X.Org Foundation"
[8.266] (**) NOUVEAU(0): Option "EXANoComposite" "Yes"
[8.266] (**) NOUVEAU(0): EXA: Disabling Composite operation (RENDER acceleration)
[8.266] (II) EXA(0): Driver allocated offscreen pixmaps
[8.266] (II) EXA(0): Driver registered support for the following operations:
[8.266] (II)         Solid
[8.266] (II)         Copy
[8.266] (II)         UploadToScreen
[8.266] (II)         DownloadFromScreen


Disables acceleration of the Composite operation,
which is at the heart of the Render extension.
Not related to the Composite extension.
Default: No.

man 4 exa
Comment 17 poma 2015-03-30 06:12:25 UTC
Apart from all this,

Option "EXANoUploadToScreen" "Yes"

[2.007] (II) Loading sub module "exa"
[2.007] (II) LoadModule: "exa"
[2.007] (II) Loading /usr/lib64/xorg/modules/libexa.so
[2.007] (II) Module exa: vendor="X.Org Foundation"
[2.007] (**) NOUVEAU(0): Option "EXANoUploadToScreen" "Yes"
[2.007] (**) NOUVEAU(0): EXA: Disabling UploadToScreen
[2.007] (II) EXA(0): Driver allocated offscreen pixmaps
[2.007] (II) EXA(0): Driver registered support for the following operations:
[2.007] (II)         Solid
[2.007] (II)         Copy
[2.007] (II)         Composite (RENDER acceleration)
[2.008] (II)         DownloadFromScreen
...
[7.390] (EE) 
[7.390] (EE) Backtrace:
[7.392] (EE) 0: /usr/libexec/Xorg.bin (OsLookupColor+0x119) [0x59c739]
[7.393] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f349a50095f]
[7.393] (EE) 2: /lib64/libc.so.6 (cfree+0x5d8) [0x7f349a54fa18]
[7.394] (EE) 3: /usr/lib64/xorg/modules/libexa.so (exaMoveOutPixmap+0x30f0) [0x7f3494e05790]
[7.394] (EE) 4: /usr/libexec/Xorg.bin (DamageDestroy+0x222) [0x51dd42]
[7.394] (EE) 5: /usr/libexec/Xorg.bin (ShmRegisterFbFuncs+0x739) [0x4db449]
[7.401] (EE) 6: /usr/libexec/Xorg.bin (FreePicture+0x158) [0x50d578]
[7.401] (EE) 7: /usr/lib64/xorg/modules/libexa.so (exaEnableDisableFBAccess+0x26b6) [0x7f3494e0cd76]
[7.402] (EE) 8: /usr/libexec/Xorg.bin (AddTraps+0x4d8c) [0x51a1fc]
[7.402] (EE) 9: /usr/libexec/Xorg.bin (SendErrorToClient+0x2f7) [0x4391b7]
[7.402] (EE) 10: /usr/libexec/Xorg.bin (remove_fs_handlers+0x416) [0x43d316]
[7.402] (EE) 11: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f349a4ebfe0]
[7.403] (EE) 12: /usr/libexec/Xorg.bin (_start+0x29) [0x4276ee]
[7.403] (EE) 13: ? (?+0x29) [0x29]
[7.403] (EE) 
[7.403] (EE) Segmentation fault at address 0x117
[7.403] (EE) 
Fatal server error:
[7.403] (EE) Caught signal 11 (Segmentation fault). Server aborting
[7.403] (EE) 
[7.403] (EE) 
Please consult the Fedora Project support 
	 at http://wiki.x.org
 for help. 
[7.403] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[7.403] (EE) 
[7.404] (II) AIGLX: Suspending AIGLX clients for VT switch
[7.404] (II) NOUVEAU(0): NVLeaveVT is called.
[7.504] (EE) Server terminated with error (1). Closing log file.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Option "EXANoDownloadFromScreen" "Yes"

[5.578] (II) Loading sub module "exa"
[5.578] (II) LoadModule: "exa"
[5.578] (II) Loading /usr/lib64/xorg/modules/libexa.so
[5.578] (II) Module exa: vendor="X.Org Foundation"
[5.578] 	compiled for 1.16.3, module version = 2.6.0
[5.578] 	ABI class: X.Org Video Driver, version 18.0
[5.578] (**) NOUVEAU(0): Option "EXANoDownloadFromScreen" "Yes"
[5.578] (**) NOUVEAU(0): EXA: Disabling DownloadFromScreen
[5.578] (II) EXA(0): Driver allocated offscreen pixmaps
[5.578] (II) EXA(0): Driver registered support for the following operations:
[5.578] (II)         Solid
[5.578] (II)         Copy
[5.578] (II)         Composite (RENDER acceleration)
[5.578] (II)         UploadToScreen
...
[6.309] (EE) 
[6.309] (EE) Backtrace:
[6.310] (EE) 0: /usr/libexec/Xorg.bin (OsLookupColor+0x119) [0x59c739]
[6.312] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f97cfdf295f]
[6.313] (EE) 2: /lib64/libc.so.6 (__memcpy_sse2_unaligned+0x20) [0x7f97cfe59ce0]
[6.313] (EE) 3: /usr/lib64/xorg/modules/libexa.so (exaMoveOutPixmap+0xe9e) [0x7f97ca6f331e]
[6.313] (EE) 4: /usr/lib64/xorg/modules/libexa.so (exaMoveOutPixmap+0x1363) [0x7f97ca6f39c3]
[6.314] (EE) 5: /usr/lib64/xorg/modules/libexa.so (exaMoveOutPixmap+0x39df) [0x7f97ca6f880f]
[6.314] (EE) 6: /usr/lib64/xorg/modules/libexa.so (exaEnableDisableFBAccess+0x2af1) [0x7f97ca6ff731]
[6.314] (EE) 7: /usr/lib64/xorg/modules/libexa.so (exaEnableDisableFBAccess+0x4286) [0x7f97ca702766]
[6.314] (EE) 8: /usr/lib64/xorg/modules/libexa.so (exaMoveOutPixmap+0x6892) [0x7f97ca6fe682]
[6.315] (EE) 9: /usr/libexec/Xorg.bin (miFillUniqueSpanGroup+0x19c8) [0x58a4d8]
[6.315] (EE) 10: /usr/libexec/Xorg.bin (xf86I2CGetScreenBuses+0x1d9a) [0x4cad3a]
[6.315] (EE) 11: /usr/libexec/Xorg.bin (AddTraps+0x2e55) [0x515de5]
[6.315] (EE) 12: /usr/libexec/Xorg.bin (SendErrorToClient+0x2f7) [0x4391b7]
[6.315] (EE) 13: /usr/libexec/Xorg.bin (remove_fs_handlers+0x416) [0x43d316]
[6.316] (EE) 14: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f97cfdddfe0]
[6.316] (EE) 15: /usr/libexec/Xorg.bin (_start+0x29) [0x4276ee]
[6.317] (EE) 16: ? (?+0x29) [0x29]
[6.317] (EE) 
[6.317] (EE) Segmentation fault at address 0x0
[6.317] (EE) 
Fatal server error:
[6.317] (EE) Caught signal 11 (Segmentation fault). Server aborting
[6.317] (EE) 
[6.317] (EE) 
Please consult the Fedora Project support 
	 at http://wiki.x.org
 for help. 
[6.317] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[6.317] (EE) 
[6.317] (EE) Server terminated with error (1). Closing log file.
Comment 18 poma 2015-05-10 16:53:41 UTC
The "lazy background bitmap" issue can be tested with the Xfce test compilation:
http://goo.gl/Gm4ffO
ISO/
Comment 19 andrew p. 2015-05-27 18:08:00 UTC
Hi, it's me again. I'm not familiar with all this nouveau stuff, so can you tell what is the current status of the bug?
I received bug reports that look very similar to this. Is there any fix or maybe workaround?

https://bugs.launchpad.net/ubuntu/+source/lightdm-gtk-greeter/+bug/1459079
Comment 20 Ilia Mirkin 2015-05-27 18:20:37 UTC
(In reply to andrew p. from comment #19)
> Hi, it's me again. I'm not familiar with all this nouveau stuff, so can you
> tell what is the current status of the bug?
> I received bug reports that look very similar to this. Is there any fix or
> maybe workaround?
> 
> https://bugs.launchpad.net/ubuntu/+source/lightdm-gtk-greeter/+bug/1459079

The status is that it doesn't work :)

I've been looking at the overall logic in nouveau's EXA implementation, and it looks extremely dodgy wrt CPU access -- I think that PrepareAccess should do an unconditional PUSH_KICK(push) before the nouveau_bo_wait. That'd be good to test out.
Comment 21 Ilia Mirkin 2015-05-27 18:33:40 UTC
Created attachment 116090 [details] [review]
kick pushbuf before mapping bo

This is the patch I had in mind... totally untested, but seems like it could be the right thing to do.
Comment 22 Ilia Mirkin 2015-05-27 21:40:00 UTC
(In reply to Ilia Mirkin from comment #21)
> Created attachment 116090 [details] [review] [review]
> kick pushbuf before mapping bo
> 
> This is the patch I had in mind... totally untested, but seems like it could
> be the right thing to do.

Ben tells me that nouveau_bo_wait (called by nouveau_bo_map) ends up doing this anyways. Oh well.
Comment 23 andrew p. 2015-05-28 15:06:05 UTC
(In reply to Ilia Mirkin from comment #22)
> Ben tells me that nouveau_bo_wait (called by nouveau_bo_map) ends up doing
> this anyways. Oh well.

Is it bad, right? So, no hope in the near future?
Comment 24 Ilia Mirkin 2015-05-28 15:25:27 UTC
(In reply to andrew p. from comment #23)
> (In reply to Ilia Mirkin from comment #22)
> > Ben tells me that nouveau_bo_wait (called by nouveau_bo_map) ends up doing
> > this anyways. Oh well.
> 
> Is it bad, right? So, no hope in the near future?

It's good that it does that. It's bad for figuring out what the cause of the bug is.

*Ideally* someone would submit an x11trace (aka xtrace too) of the buggy application so that we can better see what's going on. I have no experience analyzing such traces, but everything should be in there...
Comment 25 andrew p. 2015-05-28 18:22:19 UTC
(In reply to Ilia Mirkin from comment #24)
> It's good that it does that.
Is it so good that newest nouveau version will resolve this bug?

About xtrace, for poma:
> Guys, if any of you know how to x[11]trace lightdm-gtk-greeter?
You need to modify "greeter-wrapper" script to run xtrace. Default path for ubuntu: /usr/lib/lightdm/lightdm-greeter-session

Replace launching command:
    exec $@ &
with xtrace command:
    exec xtrace -b -o /tmp/xtrace.log $@ &
Comment 26 poma 2015-05-28 18:59:33 UTC
(In reply to andrew p. from comment #25)
> (In reply to Ilia Mirkin from comment #24)
> > It's good that it does that.
> Is it so good that newest nouveau version will resolve this bug?
> 
> About xtrace, for poma:
> > Guys, if any of you know how to x[11]trace lightdm-gtk-greeter?
> You need to modify "greeter-wrapper" script to run xtrace. Default path for
> ubuntu: /usr/lib/lightdm/lightdm-greeter-session
> 
> Replace launching command:
>     exec $@ &
> with xtrace command:
>     exec xtrace -b -o /tmp/xtrace.log $@ &


$ rpm -ql lightdm-gtk | grep -v 'locale\|icons\|doc'
/etc/lightdm/lightdm-gtk-greeter.conf
/usr/sbin/lightdm-gtk-greeter
/usr/share/xgreeters/lightdm-greeter.desktop
/usr/share/xgreeters/lightdm-gtk-greeter.desktop
Comment 27 poma 2015-05-28 19:04:54 UTC
(In reply to poma from comment #26)
> (In reply to andrew p. from comment #25)
> > (In reply to Ilia Mirkin from comment #24)
> > > It's good that it does that.
> > Is it so good that newest nouveau version will resolve this bug?
> > 
> > About xtrace, for poma:
> > > Guys, if any of you know how to x[11]trace lightdm-gtk-greeter?
> > You need to modify "greeter-wrapper" script to run xtrace. Default path for
> > ubuntu: /usr/lib/lightdm/lightdm-greeter-session
> > 
> > Replace launching command:
> >     exec $@ &
> > with xtrace command:
> >     exec xtrace -b -o /tmp/xtrace.log $@ &
> 
> 
> $ rpm -ql lightdm-gtk | grep -v 'locale\|icons\|doc'
> /etc/lightdm/lightdm-gtk-greeter.conf
> /usr/sbin/lightdm-gtk-greeter
> /usr/share/xgreeters/lightdm-greeter.desktop
> /usr/share/xgreeters/lightdm-gtk-greeter.desktop


$ file /usr/share/xgreeters/lightdm-greeter.desktop
/usr/share/xgreeters/lightdm-greeter.desktop: symbolic link to `/etc/alternatives/lightdm-greeter'

$ file /etc/alternatives/lightdm-greeter
/etc/alternatives/lightdm-greeter: symbolic link to `/usr/share/xgreeters/lightdm-gtk-greeter.desktop'

$ cat /usr/share/xgreeters/lightdm-gtk-greeter.desktop
[Desktop Entry]
Name=LightDM GTK+ Greeter
Comment=This runs the GTK+ greeter, it should only be run from LightDM
Exec=lightdm-gtk-greeter
Type=Application
X-Ubuntu-Gettext-Domain=lightdm


Here, that's all, no "wrapper".
Comment 28 andrew p. 2015-05-28 19:53:36 UTC
(In reply to poma from comment #27)
> Here, that's all, no "wrapper".
lightdm-gtk-greeter.desktop must be ok:

    Exec=xtrace -b -o /tmp/xtrace.log lightdm-gtk-greeter
Comment 29 poma 2015-05-29 00:49:11 UTC
(In reply to andrew p. from comment #28)
> (In reply to poma from comment #27)
> > Here, that's all, no "wrapper".
> lightdm-gtk-greeter.desktop must be ok:
> 
>     Exec=xtrace -b -o /tmp/xtrace.log lightdm-gtk-greeter


# cat /usr/share/xgreeters/lightdm-gtk-greeter.desktop.old
[Desktop Entry]
Name=LightDM GTK+ Greeter
Comment=This runs the GTK+ greeter, it should only be run from LightDM
Exec=xtrace -b -o /tmp/xtrace.log lightdm-gtk-greeter
Type=Application
X-Ubuntu-Gettext-Domain=lightdm


# cat /var/log/lightdm/lightdm.log.old
...
[+0.53s] DEBUG: Seat seat0: Display server ready, starting session authentication
[+0.53s] DEBUG: Session pid=13245: Started with service 'lightdm-greeter', username 'lightdm'
[+0.57s] DEBUG: Session pid=13245: Authentication complete with return value 0: Success
[+0.57s] DEBUG: Seat seat0: Session authenticated, running command
[+0.57s] DEBUG: Session pid=13245: Running command /usr/bin/xtrace -b -o /tmp/xtrace.log lightdm-gtk-greeter
[+0.57s] DEBUG: Creating shared data directory /var/lib/lightdm-data/lightdm
[+0.57s] DEBUG: Session pid=13245: Logging to /var/log/lightdm/x-0-greeter.log
[+0.61s] DEBUG: Activating VT 1
[+0.61s] DEBUG: Activating login1 session c52
[+0.61s] DEBUG: Seat seat0 changes active session to c52
[+0.61s] DEBUG: Session c52 is already active
[+0.61s] DEBUG: Session pid=13245: Greeter closed communication channel
[+0.62s] DEBUG: Session pid=13245: Exited with return value 0
[+0.62s] DEBUG: Seat seat0: Session stopped
[+0.62s] DEBUG: Seat seat0: Stopping; failed to start a greeter
[+0.62s] DEBUG: Seat seat0: Stopping
[+0.62s] DEBUG: Seat seat0: Stopping display server
[+0.62s] DEBUG: Sending signal 15 to process 13235
[+0.62s] DEBUG: Seat seat0 changes active session to 
[+0.62s] CRITICAL: session_get_login1_session_id: assertion 'session != NULL' failed
[+0.87s] DEBUG: Process 13235 exited with return value 0
[+0.87s] DEBUG: DisplayServer x-0: X server stopped
[+0.87s] DEBUG: Releasing VT 1
[+0.87s] DEBUG: DisplayServer x-0: Removing X server authority /var/run/lightdm/root/:0
[+0.87s] DEBUG: Seat seat0: Display server stopped
[+0.87s] DEBUG: Seat seat0: Stopped
[+0.87s] DEBUG: Required seat has stopped
[+0.87s] DEBUG: Stopping display manager
[+0.87s] DEBUG: Display manager stopped
[+0.87s] DEBUG: Stopping daemon
[+0.87s] DEBUG: Exiting with return value 1


# cat /var/log/lightdm/x-0-greeter.log.old
executable `-b' not found
Try `xtrace --help' or `xtrace --usage' for more information.


# xtrace --help
Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...
Trace execution of program by printing currently executed function.

     --data=FILE          Don't run the program, just print the data from FILE.

   -?,--help              Print this help and exit
      --usage             Give a short usage message
   -V,--version           Print version information and exit

Mandatory arguments to long options are also mandatory for any corresponding
short options.

For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.


# xtrace --version
xtrace (GNU libc) 2.20
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.
Comment 30 poma 2015-05-29 02:07:14 UTC
# which xtrace
/bin/xtrace


# rpm -qf /bin/xtrace
glibc-utils-2.20-8.fc21.x86_64


# yum -q search xtrace
============================= N/S matched: xtrace ==============================
xtrace.x86_64 : A program for X11 protocol tracing


# yum -q install xtrace

================================================================================
 Package         Arch            Version                  Repository       Size
================================================================================
Installing:
 xtrace          x86_64          1.3.1-7.fc21             fedora          102 k

Transaction Summary
================================================================================
Install  1 Package

Is this ok [y/d/N]: y


Transaction check error:
  file /usr/bin/xtrace from install of xtrace-1.3.1-7.fc21.x86_64 conflicts with file from package glibc-utils-2.20-8.fc21.x86_64

Error Summary
-------------


# yumdownloader -q xtrace


# rpm -ivh xtrace-1.3.1-7.fc21.x86_64.rpm 
Preparing...                          ################################# [100%]
	file /usr/bin/xtrace from install of xtrace-1.3.1-7.fc21.x86_64 conflicts with file from package glibc-utils-2.20-8.fc21.x86_64



# rpm -ivh xtrace-1.3.1-7.fc21.x86_64.rpm --force
Preparing...                          ################################# [100%]
Updating / installing...
   1:xtrace-1.3.1-7.fc21              ################################# [100%]


# rpm -qf /bin/xtrace
xtrace-1.3.1-7.fc21.x86_64


# xtrace --help
xtrace: Dump all X protocol data being tunneled from a fake X display to a real one.
usage: xtrace [options] [[--] command args ...]
--display, -d <display to connect to>
--fakedisplay, -D <display to fake>
--copyauthentication, -c	Copy credentials
--nocopyauthentication, -n	Do not copy credentials
--authfile, -f <file instead of ~/.Xauthority to get credentials from>
--newauthfile, -F <file instead of ~/.Xauthority to put credentials in>
--waitforclient, -W		wait for connection even if command terminates
--stopwhendone, -s		Return when last client disconnects
--keeprunning, -k		Keep running
--denyextensions, -e		Fake unavailability of all extensions
--readwritedebug, -w		Print amounts of data read/sent
--maxlistlength, -m <maximum number of entries in each list shown>
--outfile, -o <filename>	Output to file instead of stdout
--buffered, -b			Do not output every line but only when buffer is full


# xtrace --version
xtrace version 1.3.1
Comment 31 poma 2015-05-29 02:17:00 UTC
"Review Request: xtrace - Utility for tracing X11 protocol for debugging"
https://bugzilla.redhat.com/show_bug.cgi?id=1067665#c18
Comment 32 poma 2015-05-29 02:22:02 UTC
(In reply to poma from comment #31)
> "Review Request: xtrace - Utility for tracing X11 protocol for debugging"
> https://bugzilla.redhat.com/show_bug.cgi?id=1067665#c18


# yum -q erase xtrace

================================================================================
 Package         Arch            Version               Repository          Size
================================================================================
Removing:
 xtrace          x86_64          1.3.1-7.fc21          installed          297 k

Transaction Summary
================================================================================
Remove  1 Package

Is this ok [y/N]: y
Warning: RPMDB altered outside of yum.


# yum -q reinstall glibc-utils

================================================================================
 Package             Arch           Version               Repository       Size
================================================================================
Reinstalling:
 glibc-utils         x86_64         2.20-8.fc21           updates          28 k

Transaction Summary
================================================================================
Reinstall  1 Package

Is this ok [y/d/N]: y


# yum -q search x11trace
============================ N/S matched: x11trace =============================
x11trace.x86_64 : A program for X11 protocol tracing

  Name and summary matches only, use "search all" for everything.


# yum -q install x11trace
Package x11trace-1.3.1-8.fc21.x86_64 already installed and latest version


Madre mia
Comment 33 poma 2015-05-29 02:36:46 UTC
# cat /usr/share/xgreeters/lightdm-gtk-greeter.desktop.old
[Desktop Entry]
Name=LightDM GTK+ Greeter
Comment=This runs the GTK+ greeter, it should only be run from LightDM
Exec=x11trace -b -o /tmp/xtrace.log lightdm-gtk-greeter
Type=Application
X-Ubuntu-Gettext-Domain=lightdm


# file /tmp/xtrace.log 
/tmp/xtrace.log: empty


# cat /var/log/lightdm/lightdm.log.old
...
[+0.57s] DEBUG: Seat seat0: Display server ready, starting session authentication
[+0.57s] DEBUG: Session pid=3421: Started with service 'lightdm-greeter', username 'lightdm'
[+0.61s] DEBUG: Session pid=3421: Authentication complete with return value 0: Success
[+0.61s] DEBUG: Seat seat0: Session authenticated, running command
[+0.61s] DEBUG: Session pid=3421: Running command /usr/bin/x11trace -b -o /tmp/xtrace.log lightdm-gtk-greeter
[+0.61s] DEBUG: Creating shared data directory /var/lib/lightdm-data/lightdm
[+0.61s] DEBUG: Session pid=3421: Logging to /var/log/lightdm/x-0-greeter.log
[+0.69s] DEBUG: Activating VT 1
[+0.69s] DEBUG: Activating login1 session c6
[+0.69s] DEBUG: Seat seat0 changes active session to c6
[+0.69s] DEBUG: Session c6 is already active
[+0.70s] DEBUG: Session pid=3421: Greeter closed communication channel
[+0.71s] DEBUG: Session pid=3421: Exited with return value 0
[+0.71s] DEBUG: Seat seat0: Session stopped
[+0.71s] DEBUG: Seat seat0: Stopping; failed to start a greeter
[+0.71s] DEBUG: Seat seat0: Stopping
[+0.71s] DEBUG: Seat seat0: Stopping display server
[+0.71s] DEBUG: Sending signal 15 to process 3405
[+0.71s] DEBUG: Seat seat0 changes active session to 
[+0.71s] CRITICAL: session_get_login1_session_id: assertion 'session != NULL' failed
[+1.00s] DEBUG: Process 3405 exited with return value 0
[+1.00s] DEBUG: DisplayServer x-0: X server stopped
[+1.00s] DEBUG: Releasing VT 1
[+1.00s] DEBUG: DisplayServer x-0: Removing X server authority /var/run/lightdm/root/:0
[+1.00s] DEBUG: Seat seat0: Display server stopped
[+1.00s] DEBUG: Seat seat0: Stopped
[+1.00s] DEBUG: Required seat has stopped
[+1.00s] DEBUG: Stopping display manager
[+1.00s] DEBUG: Display manager stopped
[+1.00s] DEBUG: Stopping daemon
[+1.00s] DEBUG: Exiting with return value 1


# cat /var/log/lightdm/x-0-greeter.log.old
No display name to create specified, trying :9
Error binding socket for ':9': 98=Address already in use
Comment 34 poma 2015-05-29 04:20:14 UTC
Created attachment 116136 [details]
lightdm and greeter log


/usr/share/xgreeters/lightdm-gtk-greeter.desktop
[Desktop Entry]
Name=LightDM GTK+ Greeter
Comment=This runs the GTK+ greeter, it should only be run from LightDM
Exec=x11trace -D :11 -d :0 -b -o /var/log/lightdm/x11trace.log /sbin/lightdm-gtk-greeter
Type=Application
Comment 35 poma 2015-05-29 04:30:32 UTC
Created attachment 116137 [details]
x11trace.log


x11trace -D :11 -d :0 -b -o /var/log/lightdm/x11trace.log /sbin/lightdm-gtk-greeter
Comment 36 poma 2015-05-31 22:22:19 UTC
Created attachment 116192 [details]
x11trace.log OK


From working setup.

Can be tested on:
$ dmesg|grep Family|awk '{print $8}'
NV50

Test compilation:
http://goo.gl/Gm4ffO
ISO/Fedora-Live-Xfce.iso
Comment 37 poma 2015-06-04 06:08:09 UTC
Loading background bitmap is solved with:

https://git.gnome.org/browse/gtk+/commit/?id=a34a022

$ git log --stat -1 -p gtk/gtkwindow.c
commit a34a0224e4fc6eff35fd41b7f318517b20b95713
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Fri Feb 13 18:21:42 2015 -0800

    gtkwindow: Don't set the background if the window is app-paintable
    
    This fixes transparent DND windows.
---
 gtk/gtkwindow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 4dbde2a..2b1bcca 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -7006,7 +7006,7 @@ gtk_window_realize (GtkWidget *widget)
   /* We don't need to set a background on the GdkWindow; with decorations
    * we draw the background ourself
    */
-  if (!priv->client_decorated)
+  if (!priv->client_decorated && !gtk_widget_get_app_paintable (widget))
     gtk_style_context_set_background (gtk_widget_get_style_context (widget), gdk_window);
 
   attributes.x = allocation.x;


Backporting this particular commit(part of 3.15.7 release) to 3.14.x has no effect,
so rather than upgrade from:

gtk3-3.14.13-2.fc21
glib2-2.42.2-1.fc21
atk-2.14.0-1.fc21

to:

gtk3-3.15.7-1.fc21
glib2-2.43.4-1.fc21
atk-2.15.1-1.fc21

this would actually be the best solution:

gtk3-3.16.3-1.fc22
glib2-2.44.1-1.fc22
atk-2.16.0-1.fc22


I thank Ilia and Andrew for their participation.


Ref.
https://bugs.freedesktop.org/show_bug.cgi?id=89730
https://bugs.launchpad.net/ubuntu/+source/lightdm-gtk-greeter/+bug/1459079


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.