After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 735294 - No widgets visible in simple applications with gtk+ 3.13.3 and later
No widgets visible in simple applications with gtk+ 3.13.3 and later
Status: RESOLVED NOTGNOME
Product: gtk+
Classification: Platform
Component: Backend: X11
3.13.x
Other Linux
: Normal minor
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2014-08-23 17:08 UTC by possiblyspam+gnomebugzilla
Modified: 2014-08-29 03:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test application (351 bytes, text/plain)
2014-08-23 17:08 UTC, possiblyspam+gnomebugzilla
Details

Description possiblyspam+gnomebugzilla 2014-08-23 17:08:08 UTC
Created attachment 284309 [details]
Test application

The attached application works with gtk+ 3.13.2, but not with gtk+ 3.13.3 (and 3.13.7, and presumably any in between)

Expected behaviour:
A small window with the label "Test"

Actual behaviour:
A small window with no widgets visible

Additional notes: this is not limited to GtkLabel widgets. The issue also seems to occur for midori, where I also noticed some signs of the widgets being there in the form of the mouse cursor changing over text fields.
But it seems like it might not affect applications with the thick header (sorry for not knowing the proper term) like gtk3-demo.
It appears to be limited to the x11 backend, the label shows up in broadway and also in wayland (shortly before crashing, but that's for another report)
Comment 1 Matthias Clasen 2014-08-23 22:46:10 UTC
works fine here
Comment 2 possiblyspam+gnomebugzilla 2014-08-24 10:06:25 UTC
Maybe there is something wrong with how it's built on my system then, or a runtime dependency that isn't mentioned or warned about.

Here is how it's built on my system:
tar -xJf gtk+-3.13.3.tar.xz
cd gtk+-3.13.3
mkdir -p builddir
cd builddir
../configure --prefix="/usr" --sysconfdir="/etc"
make
make install
Comment 3 possiblyspam+gnomebugzilla 2014-08-24 17:26:48 UTC
I narrowed it down to commit d48adf9cee7e340acd7f8b9a5f9716695352b848
I also tested it on my desktop computer which has an nvidia card and could not reproduce it, so it seems to be specific to the intel graphics on my laptop.

OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
lspci output: 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)

Setting GDK_RENDERING to 'image' or 'recording' makes the label show up on the intel graphics.
Comment 4 possiblyspam+gnomebugzilla 2014-08-26 09:48:23 UTC
I've done more digging and found that the issue also requires cairo 1.12.4 or later to trigger, and only when cairo is built without libXrender support.
Comment 5 Benjamin Otte (Company) 2014-08-27 11:47:32 UTC
The commit you bisected to essentially changes a call to
  cairo_xlib_surface_set_size (surface, new_width, new_height);
to the equivalent calls
  cairo_destroy (surface);
  surface = cairo_xlib_surface_create (display, xid, visual, new_width, new_height);
and was made to simplify the GDK code base.

So I'd say that this is most likely a bug in either Cairo's xlib backend in the non-xrender usecase or it's a bug in the X driver for your GPU. The non-xrender codepath is probably quite well tested there, too...
Comment 6 Matthias Clasen 2014-08-29 03:02:34 UTC
I've added a release note about this combination (X without Render) not working well.