Public bug reported:

THis contains a fresh install of Ubuntu 18.10 to verify the solution at bug 
1727356, for Intel-graphic-cards, 
which do not support OpenGL 2.1 or higher.
This solution works.
A fresh install does not contain any monitors.xml file, to describe  the dual 
monitor-configuration.
I try to connect an internal laptop-monitor LVDS1 with maximal density 1280 x 
800 and an external monitor VGA1
with density 1280 x 1024.
Display-manager gdm3 by default configures the external monitor at the right 
side of the laptop-monitor.
This results into a logical screen of 2560 x 1024. 
THe graphics card only supports a maximal width and height of 2048.

Therefore  textures, that are too large, are splitted into multiple slices, 
that fit.
Unfortunately this is not always done, causing textures of size 2560 x 1024 not 
being allocated and crashing.

A quick and dirty hardcoded solution limiting the width to 2048
eliminates the crashes:

At cogl/cogl/cogl-texture-2d-sliced.c module setup_spans:
  /* Negative number means no slicing forced by the user */
  if (max_waste <= -1)
    {
      CoglSpan span;
      if (max_width > 2048)
         max_width = 2048;

At cogl/cogl/driver/gl/cogl-texture-2d-gl.c routine allocate_from_bitmap:
  internal_format =
    _cogl_texture_determine_internal_format (tex, cogl_bitmap_get_format (bmp));

  if (width > 2048)
    width = 2048;

In fact the external monitor is physically positioned above the laptop-monitor 
and this is the configuration we want.
This results into a logical screen of 1280 x 1824 within the limits of the 
graphics card.

To get this configuration the file monitors.xml was copied to $HOME/.config and 
to /var/lib/gdm3/.config (to configure login screen).
By default Ubuntu 18.10 uses gdm3 with wayland at the login-screen and gdm3 
without wayland after login.

Display-manager gdm3 with wayland ignores this monitors.xml file. To make the 
file also usable for wayland the <configuration>
must be copied with <connector>VGA-1</connector> i.s.o. 
<connector>VGA1</connector> and
<connector>LVDS-1</connector> i.s.o. <connector>LVDS1</connector> . 

Curious!@#$#.

ProblemType: Bug
DistroRelease: Ubuntu 18.10
Package: evince 3.30.0-2
ProcVersionSignature: Ubuntu 4.18.0-7.8-generic 4.18.5
Uname: Linux 4.18.0-7-generic i686
ApportVersion: 2.20.10-0ubuntu11
Architecture: i386
CurrentDesktop: ubuntu:GNOME
Date: Sat Sep 29 01:41:55 2018
ProcEnviron:
 LANGUAGE=en_US:en
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: evince
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: gnome-shell (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: apport-bug cosmic i386

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to evince in Ubuntu.
https://bugs.launchpad.net/bugs/1795089

Title:
  Gnome-shell crashes if dual monitor connected

Status in gnome-shell package in Ubuntu:
  New

Bug description:
  THis contains a fresh install of Ubuntu 18.10 to verify the solution at bug 
1727356, for Intel-graphic-cards, 
  which do not support OpenGL 2.1 or higher.
  This solution works.
  A fresh install does not contain any monitors.xml file, to describe  the dual 
monitor-configuration.
  I try to connect an internal laptop-monitor LVDS1 with maximal density 1280 x 
800 and an external monitor VGA1
  with density 1280 x 1024.
  Display-manager gdm3 by default configures the external monitor at the right 
side of the laptop-monitor.
  This results into a logical screen of 2560 x 1024. 
  THe graphics card only supports a maximal width and height of 2048.

  Therefore  textures, that are too large, are splitted into multiple slices, 
that fit.
  Unfortunately this is not always done, causing textures of size 2560 x 1024 
not being allocated and crashing.

  A quick and dirty hardcoded solution limiting the width to 2048
  eliminates the crashes:

  At cogl/cogl/cogl-texture-2d-sliced.c module setup_spans:
    /* Negative number means no slicing forced by the user */
    if (max_waste <= -1)
      {
        CoglSpan span;
        if (max_width > 2048)
           max_width = 2048;

  At cogl/cogl/driver/gl/cogl-texture-2d-gl.c routine allocate_from_bitmap:
    internal_format =
      _cogl_texture_determine_internal_format (tex, cogl_bitmap_get_format 
(bmp));

    if (width > 2048)
      width = 2048;

  In fact the external monitor is physically positioned above the 
laptop-monitor and this is the configuration we want.
  This results into a logical screen of 1280 x 1824 within the limits of the 
graphics card.

  To get this configuration the file monitors.xml was copied to $HOME/.config 
and to /var/lib/gdm3/.config (to configure login screen).
  By default Ubuntu 18.10 uses gdm3 with wayland at the login-screen and gdm3 
without wayland after login.

  Display-manager gdm3 with wayland ignores this monitors.xml file. To make the 
file also usable for wayland the <configuration>
  must be copied with <connector>VGA-1</connector> i.s.o. 
<connector>VGA1</connector> and
  <connector>LVDS-1</connector> i.s.o. <connector>LVDS1</connector> . 

  Curious!@#$#.

  ProblemType: Bug
  DistroRelease: Ubuntu 18.10
  Package: evince 3.30.0-2
  ProcVersionSignature: Ubuntu 4.18.0-7.8-generic 4.18.5
  Uname: Linux 4.18.0-7-generic i686
  ApportVersion: 2.20.10-0ubuntu11
  Architecture: i386
  CurrentDesktop: ubuntu:GNOME
  Date: Sat Sep 29 01:41:55 2018
  ProcEnviron:
   LANGUAGE=en_US:en
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: evince
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1795089/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to