Re: [Feedback] hybrid GPU + multimonitor: partial success with Gnome-shell / Mutter 3.27.1 in Wayland mode



On Mon, Feb 05, 2018 at 07:24:46PM +0100, Cyrille Chépélov wrote:
Hello,

Hi!


first of all, many thanks for the hard work.

Thanks a lot for testing!


I have an Nvidia GeForce 1060 GTX -equipped laptop, which also has a
perfectly functional and entirely adequate Intel i915-based video adapter.
Unfortunately, the Nvidia GPU is the only one connected to the laptop's
external outputs, which I need to use on occasion.

The system is a debian-based machine, running GNOME 3.26. In the default
setup, the GNOME-Session can run either in X11 (traditional) or Wayland
mode. It used to work fine (under prior versions) using a combination of
/bbswitch/, /bumblebee/ and the NVidia proprietary driver for the purpose of
enabling high-powered features such as using the external HDMI port for
presentations.

Looking at the Mutter 3.27.1 announcement that "hybrid GPU" would start to
be supported, I've modified the setup this way:

 * recompiled mutter 3.27.1 (and eventually, gnome-shell 3.27.1) using
   local Debian package derived from the system-provided 3.26.x packages
 * removed the NVidia proprietary driver in favour of "nouveau"

What I expected:

 * by default, the GNOME Session works in Wayland mode without wasting
   energy powering up the NVidia GPU, unless somehow explicitly invited
   to ("/optirun foo/" etc.)

The work done in mutter so far does not deal with any turn on/off
functionality. All it tries to do is to read the state given by KMS.

 * When plugging an external display through HDMI (or at worst, while
   also running some 'magic tool' as in the old /intel-virtual-output
   -f/ days), the additional screens just work

This is indeed expected to work.

 * When /un/pluggin an external display through HDMI, the machine keeps
   working, and could withstand an unlimited number of plug/unplug cycles.

This is also indeed expected to work.

Note that when I did this work, I hit a nouveau bug that triggered
freezes. I have not checked whether those have been fixed.


I *didn't* get to that level, but there's good hope.

The following are the three best outcomes I could reach:

*1. single-screen setup: working (ish)
*

 * power up the machine (it starts with "bbswitch OFF" i.e. the NVidia
   GPU is powered off except for PCI enumeration purpose)
 * /(as a consequence, the 'nouveau' kernel module refuses to boot)/
 * start a GNOME Session in default (Wayland) mode: the session comes
   up and appears usable until it freezes solid at a certain point. /—
   calling "lspci" twice appears to reliably trigger the lockup/
 * The idle power consumption at medium screen brightness is around 18W
 * Except from the occasional lockup, the session feels nice and fast
   and would make for a pleasant working environment.

Could you report a bug for this lockup? You should not be able to hit
the lockup nouveau bug I mentioned earlier, as for this scenario you
should only be using the intel driver. I'll provide instructions for how
to help finding out what is locking up.


*2. static multi-screen setup: not working*

 * power up the machine
 * switch to a text mode console
 * echo ON > /proc/acpi/bbswitch ; modprobe nouveau /; this starts the
   NVidia GPU/
 * switch back to gdm3; start a GNOME Session in Wayland mode
 * The session hits both monitors, appears to be operational for half a
   second to 2 seconds, then immediately stops.

This is unfortunate, because this worked before.

 * The primary monitor (laptop internal) goes back to gdm3, while the
   external monitor stays on a frozen image of the GNOME session.

This could be because gdm3 that is running has no idea about the
secondary GPU and will leave the state untouched. We don't yet support
hotplugging of GPUs. If you want, you can report a bug for this too, so
we can track missing features in the bug tracker.

 * There is a core dump which belongs to the gnome-shell process. I
   could isolate a couple distinct failure modes:
    1. the most frequent by far is a core dump with a top backtrace in
       "gbm_bo_get_stride_for_plane" (crash-18h45.txt, attached here)

       a very reliable way to trigger this is to edit the relative
       positions of the monitors (the external monitor is physically to
       the left, but started logically to the right of the laptop's
       integrated monitor) and attempt to hit the "Keep changed screen
       settings" button.
       Sometimes the system crashes with this stack even faster.

    2. the second most frequent is a core dump with a top backtrace
       where clutter draws text (crash-18h43.txt, attached here)

       the stack is quite deep (83 levels) but what is strange is that
       near the top, I see:

       #2  0x00007fe159a2e8e7 in copy_array_to_vbo_array (brw=brw@entry=0x5588defea4d0, min=min@entry=4, 
max=max@entry=91, buffer=buffer@entry=0x5588df00fdd8, dst_stride=dst_stride@entry=32, element=<optimized 
out>)
            at ../../../../../../src/mesa/drivers/dri/*i965*/brw_draw_upload.c:440
       #3  0x00007fe159a2f44f in brw_prepare_vertices (brw=brw@entry=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/brw_draw_upload.c:650
       #4  0x00007fe159c97a96 in gen9_emit_vertices (brw=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/genX_state_upload.c:438

       this was happening as I was about to interact with the "Keep
       changed screen settings" on the external screen… Which is
       plugged to the Nouveau, not i915 GPU.

FWIW, when rendering the content for your nouveau connected monitor, we
do so using the Intel GPU. After eglSwapBuffers(), we take the result,
blit it onto a buffer on the nvidia GPU using nouveau, and hand that
over to the monitor.

It is not unlikely that this could be a Intel bug however. I found this:
https://bugs.freedesktop.org/show_bug.cgi?id=90177 which looks similar,
but hard to say if it's us passing stale input or something.


    3. I had once a crash in native code called by javascript code, but
       lost the backtrace before I could save it

If it was a segmentation fault, you could set the SHELL_DEBUG env
variable to "backtrace-segfaults" (in a way that gnome-shell will see it
when starting). This will make gnome-shell to print Javascript
backtraces to the journal when it hits a segmentation fault.

    4. A lock-up scenario where nothing moves anymore (not even VT
       switches) and the only way to interact with the machine is
       through SSH
       The journal contains a string of events such as:

       févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed
       févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_bind_no_create: assertion 
'ctx->current_buffer[buffer->last_target] != buffer' failed
       févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' 
failed
       févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed
       févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_bind_no_create: assertion 
'ctx->current_buffer[buffer->last_target] != buffer' failed
       févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' 
failed
       févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed
       févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_bind_no_create: assertion 
'ctx->current_buffer[buffer->last_target] != buffer' failed
       févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' 
failed
       févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed

 * I once managed to move a Firefox (Quantum) window with a moving
   YouTube video from the main (i915) to the external (nouveau) screen,
   without an obvious causality on the crash that happens seconds later.

FWIW, this wouldn't cause Firefox to switch to using the nvidia GPU for
rendering, as we don't have a way to tell applications to change what to
render with yet.


 * The idle power consumption at the same screen brightness as above is
   around 34W

*3. Attempting a "secondary screen hotplug", going from single-screen to
multi-screen: not trying
*

/(in the old X11/bumblebee-based setup, this was a matter of opening a
terminal window, running "intel-virtual-output -f" and plugging the monitor.
And hoping to be lucky)/

 * start in single-screen session
 * plug the external monitor into the HDMI port — /nothing happens, the
   monitor briefly flashes it is 'disconnected' and goes back asleep./
 * echo ON > /proc/acpi/bbswitch ; modprobe nouveau /; this starts the
   NVidia GPU/
 * /  — at this point the external monitor powers up and remains blank./
 * /  — the idle power consumption is around 34W

   /
 * /Running with MUTTER_VERBOSE=1 ; MUTTER_USE_LOGFILE=1 in
   /etc/environment produces a log file in /tmp which doesn't ever seem
   aware there is another monitor.
   /

Crashes in multi-monitor mode are repeateable under any combination of:

 * libmutter 3.27.1 (local build, with symbols)
 * gnome-shell 3.26.2-2 (Debian) *or* 3.27.1 (local build, with symbols)
 * libglib2.0 2.54.3-2 (Debian) *or* 2.55.1 (local build, with symbols)
 * xwayland 1.19.6-1 (Debian) *or* 1.19.6 (local build, with symbols)
 * mesa 17.3.3 (Debian) *or* mesa 18.0.0-rc3 (local build, with symbols)

Additional crashes (or "failure to bring the screen back") seem to happen
when the machine powers off the main screen and I expect to also get some
trouble during suspend/resume cycles.



At this point, I have the ability to run in X11 mode for regular operation
(even though I kind of broke my bumblebee setup in the process)

Is there anything I can do to help narrow down the issue?

It'd be very helpful to report separate issus on
https://gitlab.gnome.org/GNOME/mutter/issues so that we can follow up on
them individually. Handling it in a mailing list thread is a bit too
chaotic. If I understand things correctly, you hit the following mutter
issues:

 * A lockup when only Intel GPU was enabled

 * A crash ending up in gbm_bo_get_stride_for_plane()

 * A crash far into the intel driver (this could be an mesa bug)

 * A different lockup when both GPUs were enabled (resulting in the
   cogl_... log entries.

And you hit issues due to lacking the following features:

 * GPU hot-plug support (i.e. switching on after logging in has no
   effect)
 
 * Automatic turning on/off GPU. Doesn't hurt to file this bug either.
   Whether it'll be handled in mutter or not is not set it stone.

It'd also be good if you used the top of the master branch instead of
3.27.1 (both mutter and gnome-shell), as otherwise you might hit a set
of bugs fixed during the development cycle.

Thanks again for giving this such a thorough testing, much appreciated.


Jonas


Thanks in advance for your help.

    -- Cyrille

---

lspci |grep VGA
00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060] (rev a1)

lspci -nntvv
-[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 
[8086:5910]
*+-01.0-[01]----00.0 NVIDIA Corporation GP106M [GeForce GTX 1060]
[10de:1c20]****+-02.0 Intel Corporation Device [8086:591b]***
+-08.0  Intel Corporation Skylake Gaussian Mixture Model [8086:1911]
           +-14.0  Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f]
           +-14.2  Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131]
           +-16.0  Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a]
           +-17.0  Intel Corporation 82801 Mobile SATA Controller [RAID mode] [8086:282a]
           +-1c.0-[02]----00.0  Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a]
           +-1c.2-[03]----00.0  Intel Corporation Wireless 8260 [8086:24f3]
           +-1c.4-[04]----00.0  ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller [1b21:1242]
           +-1f.0  Intel Corporation Sunrise Point-H LPC Controller [8086:a152]
           +-1f.2  Intel Corporation Sunrise Point-H PMC [8086:a121]
           +-1f.3  Intel Corporation CM238 HD Audio Controller [8086:a171]
           \-1f.4  Intel Corporation Sunrise Point-H SMBus [8086:a123]

uname -a
Linux uini 4.14.0-3-amd64 #1 SMP Debian 4.14.13-1 (2018-01-14) x86_64 GNU/Linux

cat /proc/cpuinfo  |grep "model name"|head -1
model name    : Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

cat /etc/issue
Debian GNU/Linux buster/sid




févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed
févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_bind_no_create: assertion 
'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed
févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_bind_no_create: assertion 
'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed
févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_bind_no_create: assertion 
'ctx->current_buffer[buffer->last_target] != buffer' failed
févr. 05 16:56:27 uini gnome-shell[7535]: _cogl_buffer_gl_map_range: assertion 'data != ((void *)0)' failed
févr. 05 16:56:27 uini gnome-shell[7535]: g_error_free: assertion 'error != NULL' failed


mesa 18.0.0~rc3 

immediate crash at start

#0  0x00007f4c101f4a40 in gbm_bo_get_stride_for_plane (bo=0x0, plane=0) at ../../../src/gbm/main/gbm.c:195
#1  0x00007f4c101f4a57 in gbm_bo_get_stride (bo=<optimized out>) at ../../../src/gbm/main/gbm.c:182
#2  0x00007f4c1c98a8cf in gbm_get_next_fb_id (gpu_kms=gpu_kms@entry=0x55a80ec2cc40 [MetaGpuKms], 
gbm_surface=0x55a80ef74bc0, out_next_bo=out_next_bo@entry=0x55a80ec17368, 
out_next_fb_id=out_next_fb_id@entry=0x55a80ec1735c)
    at backends/native/meta-renderer-native.c:1286
#3  0x00007f4c1c98b571 in meta_onscreen_native_swap_buffers_with_damage (onscreen=0x55a80ef71a40, 
rectangles=0x7ffe4dce72a0, n_rectangles=0) at backends/native/meta-renderer-native.c:1529
#4  0x00007f4c1b3e5816 in cogl_onscreen_swap_buffers_with_damage (onscreen=onscreen@entry=0x55a80ef71a40, 
rectangles=rectangles@entry=0x7ffe4dce72a0, n_rectangles=n_rectangles@entry=0) at cogl-onscreen.c:319
#5  0x00007f4c1d07a285 in swap_framebuffer (stage_window=0x1, swap_with_damage=<optimized out>, 
swap_region=<synthetic pointer>, view=0x55a80ef575e0 [MetaRendererView]) at cogl/clutter-stage-cogl.c:400
#6  0x00007f4c1d07a285 in clutter_stage_cogl_redraw_view (stage_window=stage_window@entry=0x55a80ef5e490, 
view=0x55a80ef575e0 [MetaRendererView]) at cogl/clutter-stage-cogl.c:845
#7  0x00007f4c1d07b1fb in clutter_stage_cogl_redraw (stage_window=0x55a80ef5e490) at 
cogl/clutter-stage-cogl.c:868
#8  0x00007f4c1d0e3d57 in clutter_stage_do_redraw (stage=0x55a80ef5dcf0 [MetaStage]) at clutter-stage.c:1121
#9  0x00007f4c1d0e3d57 in _clutter_stage_do_update (stage=0x55a80ef5dcf0 [MetaStage]) at 
clutter-stage.c:1236
#10 0x00007f4c1d0cf8d9 in master_clock_update_stages (master_clock=0x55a80ef9d680 
[ClutterMasterClockDefault], stages=0x55a80fb8c280 = {...}) at clutter-master-clock-default.c:443
#11 0x00007f4c1d0cf8d9 in clutter_clock_dispatch (source=source@entry=0x55a80ef9dbf0, callback=<optimized 
out>, user_data=<optimized out>) at clutter-master-clock-default.c:567
#12 0x00007f4c1e40ad37 in g_main_dispatch (context=0x55a80ebfd440) at ../../../../glib/gmain.c:3177
#13 0x00007f4c1e40ad37 in g_main_context_dispatch (context=context@entry=0x55a80ebfd440) at 
../../../../glib/gmain.c:3830
#14 0x00007f4c1e40af70 in g_main_context_iterate (context=0x55a80ebfd440, block=block@entry=1, 
dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3903
#15 0x00007f4c1e40b282 in g_main_loop_run (loop=0x55a80ef868a0) at ../../../../glib/gmain.c:4099
#16 0x00007f4c1c935a9c in meta_run () at core/main.c:648
#17 0x000055a80d0e0277 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:462


running mesa 18.0.0~rc3 

after moving the external screen to the left, about to hit "keep changes" 

#0  0x00007fe1761558f1 in __memmove_avx_unaligned_erms () at 
../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:427
#1  0x00007fe159a2e8e7 in memcpy (__len=2816, __src=0x80, __dest=<optimized out>) at 
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34
#2  0x00007fe159a2e8e7 in copy_array_to_vbo_array (brw=brw@entry=0x5588defea4d0, min=min@entry=4, 
max=max@entry=91, buffer=buffer@entry=0x5588df00fdd8, dst_stride=dst_stride@entry=32, element=<optimized 
out>)
    at ../../../../../../src/mesa/drivers/dri/i965/brw_draw_upload.c:440
#3  0x00007fe159a2f44f in brw_prepare_vertices (brw=brw@entry=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/brw_draw_upload.c:650
#4  0x00007fe159c97a96 in gen9_emit_vertices (brw=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/genX_state_upload.c:438
#5  0x00007fe159a3b618 in check_and_emit_atom (atom=0x5588df014920, state=<synthetic pointer>, 
brw=0x5588defea4d0) at ../../../../../../src/mesa/drivers/dri/i965/brw_state_upload.c:456
#6  0x00007fe159a3b618 in brw_upload_pipeline_state (pipeline=BRW_RENDER_PIPELINE, brw=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/brw_state_upload.c:575
#7  0x00007fe159a3b618 in brw_upload_render_state (brw=brw@entry=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/brw_state_upload.c:597
#8  0x00007fe159a2de50 in brw_draw_single_prim (indirect=0x0, stream=0, xfb_obj=0x0, prim_id=0, 
prim=<optimized out>, arrays=0x5588defd17e0, ctx=0x5588defea4d0) at 
../../../../../../src/mesa/drivers/dri/i965/brw_draw.c:884
#9  0x00007fe159a2de50 in brw_draw_prims (ctx=0x5588defea4d0, prims=<optimized out>, nr_prims=1, 
ib=<optimized out>, index_bounds_valid=<optimized out>, min_index=<optimized out>, max_index=<optimized 
out>, gl_xfb_obj=0x0, stream=0, indirect=0x0) at ../../../../../../src/mesa/drivers/dri/i965/brw_draw.c:1004
#10 0x00007fe1597fcd78 in vbo_validated_drawrangeelements (ctx=ctx@entry=0x5588defea4d0, mode=mode@entry=4, 
index_bounds_valid=index_bounds_valid@entry=0 '\000', start=start@entry=0, end=end@entry=4294967295, 
count=count@entry=132, type=5121, indices=0x6, basevertex=0, numInstances=1, baseInstance=0) at 
../../../src/mesa/vbo/vbo_exec_array.c:925
#11 0x00007fe1597fd4ef in vbo_exec_DrawElements (mode=4, count=132, type=5121, indices=0x6) at 
../../../src/mesa/vbo/vbo_exec_array.c:1075
#12 0x00007fe1750dc052 in _cogl_framebuffer_gl_draw_indexed_attributes (framebuffer=0x5588df133480, 
pipeline=<optimized out>, mode=COGL_VERTICES_MODE_TRIANGLES, first_vertex=<optimized out>, n_vertices=132, 
indices=0x5588e18bd0c0, attributes=0x5588dfa93340, n_attributes=3, flags=(COGL_DRAW_SKIP_JOURNAL_FLUSH | 
COGL_DRAW_SKIP_PIPELINE_VALIDATION | COGL_DRAW_SKIP_FRAMEBUFFER_FLUSH | COGL_DRAW_SKIP_LEGACY_STATE)) at 
driver/gl/cogl-framebuffer-gl.c:1249
#13 0x00007fe17511e3c4 in _cogl_journal_flush_modelview_and_entries (batch_start=<optimized out>, 
batch_len=22, data=0x7ffc35207e70) at cogl-journal.c:329
#14 0x00007fe17511e7e6 in batch_and_call (entries=<optimized out>, n_entries=<optimized out>, 
can_batch_callback=0x7fe17511e540 <compare_entry_pipelines>, batch_callback=0x7fe17511f080 
<_cogl_journal_flush_pipeline_and_entries>, data=0x7ffc35207e70) at cogl-journal.c:266
#15 0x00007fe17511f059 in batch_and_call (data=<optimized out>, batch_callback=<optimized out>, 
can_batch_callback=<optimized out>, n_entries=<optimized out>, entries=<optimized out>) at 
cogl-journal.c:252
#16 0x00007fe17511f059 in _cogl_journal_flush_texcoord_vbo_offsets_and_entries (batch_start=0x5588e3398c80, 
batch_len=24, data=0x7ffc35207e70) at cogl-journal.c:565
#17 0x00007fe17511ea8e in batch_and_call (data=0x7ffc35207e70, batch_callback=0x7fe17511efb0 
<_cogl_journal_flush_texcoord_vbo_offsets_and_entries>, can_batch_callback=0x7fe17511e6c0 
<compare_entry_layer_numbers>, n_entries=24, entries=0x5588e3398c80) at cogl-journal.c:252
#18 0x00007fe17511ea8e in _cogl_journal_flush_vbo_offsets_and_entries (batch_start=0x5588e3398c80, 
batch_len=24, data=<optimized out>) at cogl-journal.c:673
#19 0x00007fe17511fdc9 in batch_and_call (data=0x7ffc35207e70, batch_callback=0x7fe17511e830 
<_cogl_journal_flush_clip_stacks_and_entries>, can_batch_callback=0x7fe17511e260 
<compare_entry_clip_stacks>, n_entries=<optimized out>, entries=<optimized out>) at cogl-journal.c:252
#20 0x00007fe17511fdc9 in _cogl_journal_flush (journal=<optimized out>) at cogl-journal.c:1400
#21 0x00007fe1750facdc in _cogl_flush_attributes_state (framebuffer=framebuffer@entry=0x5588df133480, 
pipeline=0x5588e21055e0, flags=flags@entry=(unknown: 0), attributes=attributes@entry=0x5588e1f33f20, 
n_attributes=n_attributes@entry=2) at cogl-attribute.c:631
#22 0x00007fe1750dbfa1 in _cogl_framebuffer_gl_draw_indexed_attributes (framebuffer=0x5588df133480, 
pipeline=<optimized out>, mode=COGL_VERTICES_MODE_TRIANGLES, first_vertex=0, n_vertices=150, 
indices=0x5588e18bd0c0, attributes=0x5588e1f33f20, n_attributes=2, flags=(unknown: 0)) at 
driver/gl/cogl-framebuffer-gl.c:1221
#23 0x00007fe1750fbe25 in _cogl_primitive_draw (primitive=<optimized out>, framebuffer=<optimized out>, 
pipeline=<optimized out>, flags=<optimized out>) at cogl-primitive.c:619
#24 0x00007fe176b7112c in emit_vertex_buffer_geometry (node=0x5588e25e6100, node=0x5588e25e6100, 
pipeline=0x5588e21055e0, fb=0x5588df133480) at cogl-pango-display-list.c:383
#25 0x00007fe176b7112c in _cogl_framebuffer_draw_display_list_texture (node=0x5588e25e6100, 
pipeline=0x5588e21055e0, fb=0x5588df133480) at cogl-pango-display-list.c:401
#26 0x00007fe176b7112c in _cogl_pango_display_list_render (fb=fb@entry=0x5588df133480, dl=0x5588e32fce00, 
color=color@entry=0x7ffc35208220) at cogl-pango-display-list.c:445
#27 0x00007fe176b7292c in cogl_pango_show_layout (fb=0x5588df133480, layout=0x5588df4b6590, x=0, y=0, 
color=0x7ffc35208220) at cogl-pango-render.c:432
#28 0x00007fe176b72ac1 in cogl_pango_render_layout_subpixel (layout=<optimized out>, x=<optimized out>, 
y=<optimized out>, color=<optimized out>, flags=<optimized out>) at cogl-pango-render.c:459
#29 0x00007fe176b72adb in cogl_pango_render_layout (layout=<optimized out>, x=<optimized out>, y=<optimized 
out>, color=<optimized out>, flags=<optimized out>) at cogl-pango-render.c:473
#30 0x00007fe176e2ee22 in clutter_text_paint (self=0x5588e32b4b90 [ClutterText]) at clutter-text.c:2394
#31 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e32b4b90 [ClutterText]) at 
clutter-actor.c:4030
#32 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e32b4b90 [ClutterText]) at clutter-actor.c:3946
#33 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#34 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e32c0930 [StButton]) at 
clutter-actor.c:4030
#35 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e32c0930 [StButton]) at clutter-actor.c:3946
#36 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#37 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e2e69d60 [StWidget]) at 
clutter-actor.c:4030
#38 0x00007fe176dcece4 in clutter_actor_paint (self=self@entry=0x5588e2e69d60 [StWidget]) at 
clutter-actor.c:3946
#39 0x00007fe176dcef41 in clutter_actor_paint (self=self@entry=0x5588e2e69d60 [StWidget]) at 
clutter-actor.c:3972
#40 0x00007fe175bb9a88 in st_box_layout_paint (actor=<optimized out>) at ../src/st/st-box-layout.c:428
#41 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e2e69450 [StBoxLayout]) at 
clutter-actor.c:4030
#42 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e2e69450 [StBoxLayout]) at clutter-actor.c:3946
#43 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#44 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e32d0a00 [Gjs_Dialog]) at 
clutter-actor.c:4030
#45 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e32d0a00 [Gjs_Dialog]) at clutter-actor.c:3946
#46 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#47 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e2cf1450 [StWidget]) at 
clutter-actor.c:4030
#48 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e2cf1450 [StWidget]) at clutter-actor.c:3946
#49 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#50 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e2cedc60 [StBin]) at 
clutter-actor.c:4030
#51 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e2cedc60 [StBin]) at clutter-actor.c:3946
#52 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#53 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588e32abc40 [StWidget]) at 
clutter-actor.c:4030
#54 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588e32abc40 [StWidget]) at clutter-actor.c:3946
#55 0x00007fe176dcef70 in clutter_actor_real_paint (actor=<optimized out>) at clutter-actor.c:3645
#56 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588dfd69640 [StWidget]) at 
clutter-actor.c:4030
#57 0x00007fe176dcece4 in clutter_actor_paint (self=self@entry=0x5588dfd69640 [StWidget]) at 
clutter-actor.c:3946
#58 0x00007fe176dcef41 in clutter_actor_paint (self=self@entry=0x5588dfd69640 [StWidget]) at 
clutter-actor.c:3972
#59 0x00007fe178a251d4 in shell_generic_container_paint (actor=0x5588dfbb3340 [ShellGenericContainer]) at 
../src/shell-generic-container.c:149
#60 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588dfbb3340 
[ShellGenericContainer]) at clutter-actor.c:4030
#61 0x00007fe176dcece4 in clutter_actor_paint (self=0x5588dfbb3340 [ShellGenericContainer]) at 
clutter-actor.c:3946
#62 0x00007fe176dcef41 in clutter_actor_paint (self=<optimized out>) at clutter-actor.c:3972
#63 0x00007fe176e21d9a in clutter_stage_paint (self=<optimized out>) at clutter-stage.c:701
#64 0x00007fe176644e42 in meta_stage_paint (actor=0x5588df119d30 [MetaStage]) at backends/meta-stage.c:141
#65 0x00007fe176dc893c in clutter_actor_continue_paint (self=self@entry=0x5588df119d30 [MetaStage]) at 
clutter-actor.c:4030
#66 0x00007fe176dcece4 in clutter_actor_paint (self=self@entry=0x5588df119d30 [MetaStage]) at 
clutter-actor.c:3946
#67 0x00007fe176dcef41 in clutter_actor_paint (self=self@entry=0x5588df119d30 [MetaStage]) at 
clutter-actor.c:3972
#68 0x00007fe176e25eef in clutter_stage_do_paint_view (stage=stage@entry=0x5588df119d30 [MetaStage], 
view=view@entry=0x5588df1145e0 [MetaRendererView], clip=clip@entry=0x7ffc35209610) at clutter-stage.c:669
#69 0x00007fe176e261e3 in _clutter_stage_paint_view (stage=stage@entry=0x5588df119d30 [MetaStage], 
view=view@entry=0x5588df1145e0 [MetaRendererView], clip=clip@entry=0x7ffc35209610) at clutter-stage.c:685
#70 0x00007fe176db8e74 in paint_stage (stage_cogl=stage_cogl@entry=0x5588df11a490 [MetaStageNative], 
view=view@entry=0x5588df1145e0 [MetaRendererView], clip=clip@entry=0x7ffc35209610) at 
cogl/clutter-stage-cogl.c:424
#71 0x00007fe176db97bd in clutter_stage_cogl_redraw_view (stage_window=stage_window@entry=0x5588df11a490, 
view=0x5588df1145e0 [MetaRendererView]) at cogl/clutter-stage-cogl.c:714
#72 0x00007fe176dba1fb in clutter_stage_cogl_redraw (stage_window=0x5588df11a490) at 
cogl/clutter-stage-cogl.c:868
#73 0x00007fe176e22d57 in clutter_stage_do_redraw (stage=0x5588df119d30 [MetaStage]) at clutter-stage.c:1121
#74 0x00007fe176e22d57 in _clutter_stage_do_update (stage=0x5588df119d30 [MetaStage]) at 
clutter-stage.c:1236
#75 0x00007fe176e0e8d9 in master_clock_update_stages (master_clock=0x5588df154280 
[ClutterMasterClockDefault], stages=0x5588df15b5b0 = {...}) at clutter-master-clock-default.c:443
#76 0x00007fe176e0e8d9 in clutter_clock_dispatch (source=source@entry=0x5588df15c080, callback=<optimized 
out>, user_data=<optimized out>) at clutter-master-clock-default.c:567
#77 0x00007fe178149d37 in g_main_dispatch (context=0x5588dedbb440) at ../../../../glib/gmain.c:3177
#78 0x00007fe178149d37 in g_main_context_dispatch (context=context@entry=0x5588dedbb440) at 
../../../../glib/gmain.c:3830
#79 0x00007fe178149f70 in g_main_context_iterate (context=0x5588dedbb440, block=block@entry=1, 
dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3903
#80 0x00007fe17814a282 in g_main_loop_run (loop=0x5588df150740) at ../../../../glib/gmain.c:4099
#81 0x00007fe176674a9c in meta_run () at core/main.c:648
#82 0x00005588dd643277 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:462



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]