Mir

Cursor displayed incorrectly (looks like incorrect stride)

Bug #1526779 reported by Alan Griffiths
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
High
kevin gunn
Mir
Fix Released
High
Alan Griffiths
mir (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

I've seen this testing the android stack and external displays on mako and on an old VGN-FJ1Z laptop.

The cursor appears and works, but the image is broken into horizontal lines.

Related branches

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Hacking a bit of debug code into mgm::Cursor::pad_and_write_image_data_locked() (on the laptop) suggests something odd:

    image_width = 24
    image_height = 24
    image_stride = 96

    buffer_width = 256
    buffer_height = 259
    buffer_stride = 1024

Hacking the buffer contents shows that the cursor onscreen is actually 60x60 and has a stride of 64.

This is confirmed by hard coding these values into this function, when the cursor appears normally.

As this function isn't part of the android driver, we may have two different bugs here.

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

And retesting android with the current tip, I can't reproduce.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Those actually make sense. If the stride is in bytes and a pixel is 32 bits then the stride should be quadruple the width.

    image_width = 24
    image_stride = 96

    buffer_width = 256
    buffer_stride = 1024

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Sorry, I realize the numbers are self-consistent - they just don't match reality. After a bit more experimenting reality is:

    buffer_width = 64
    buffer_height = 64
    buffer_stride = 4*64

Which is less odd that I what I thought was happening yesterday (teaches me to count pixels on the screen).

But these values are reported as:

    buffer_width = 256
    buffer_height = 259
    buffer_stride = 1024

Changed in mir:
status: New → In Progress
assignee: nobody → Alan Griffiths (alan-griffiths)
Changed in mir:
milestone: none → 0.19.0
Changed in mir:
importance: Undecided → High
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.19.0

Changed in mir:
status: In Progress → Fix Committed
Changed in canonical-devices-system-image:
status: New → Fix Committed
importance: Undecided → High
assignee: nobody → kevin gunn (kgunn72)
milestone: none → ww04-2016
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.19.0+16.04.20160128-0ubuntu1

---------------
mir (0.19.0+16.04.20160128-0ubuntu1) xenial; urgency=medium

  [ Brandon Schaefer ]
  * New upstream release 0.19.0
    - API summary:
      . mirclient abi unchanged at 9
      . mirserver abi bumped to 37
      . mircommon abi unchanged at 5
      . mirplatform abi unchanged at 11
      . mirprotobuf abi unchanged at 3
      . mirplatformgraphics abi bumped to 7
      . mirclientplatform abi bumped to 4
      . mirinputplatform abi bumped to 5
      . mircookie abi bumped to 2
    - Bug fix:
      . Mir servers crash on mouse input (LP: #1528438)
      . Pinch to zoom not working reliably (LP: #1531517)
      . Passing DisplayConfiguration scale property from
        nested server to host appears to not work (LP: #1535780)
      . Various TSan reports when running test suite
        on a mir tsan enabled build (LP: #1523647)
      . Buffer leak during repeated mirscreencasts
        causes server to be killed (LP: #1523900)
      . Cursor now displays correctly (LP: #1526779)
      .ProgramOption::parse_file() reports problems to cerr (LP: #1190165)
      . Nested servers can select wrong platform (LP: #1515558)
      . There seems to be missing RTTI information
         when linking with UBSan enabled (LP: #1521930)
      . Mir threadsanitizer build fails with GCC (LP: #1522581)
      . After "make install" mir_demo_server cannot
        find shared object file in /usr/local/lib (LP: #1522836)
      . Fixed a test in TestClientInput (LP: #1523965)
      . Mir servers choose graphics-dummy (or no driver at all)
        over mesa-kms on a desktop (LP: #1528082)
      . Function mir_event_get_close_surface_event is never used (LP: #1447690)
      . mir::input::Surface::consume(MirEvent const& event)
        should not take a reference to an opaque type (LP: #1450797)
      . lintian: E: mir-doc: privacy-breach-logo (LP: #1483471)

  [ CI Train Bot ]
  * No-change rebuild.

 -- Brandon Schaefer <email address hidden> Thu, 28 Jan 2016 12:19:47 +0000

Changed in mir (Ubuntu):
status: New → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
Changed in canonical-devices-system-image:
milestone: ww04-2016 → 9.1
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.