Ticket #12339 (closed defect: fixed)

Opened 21 months ago

Last modified 15 months ago

Write/Abiword artifacts when rotated

Reported by: godiard Owned by: dsd
Priority: normal Milestone: 13.2.0
Component: x window system Version: not specified
Keywords: Cc:
Action Needed: add to build Verified: no
Deployments affected: Blocked By:
Blocking:

Description

Using the Write activity rotated you can see many artifacts instead of the letters. Rotating a few times the screen fixes the issues.

Tested on xo-1.75

Attachments

abi.py (274 bytes) - added by dsd 16 months ago.
standalone abi widget app
abi2.py (391 bytes) - added by godiard 16 months ago.

Change History

  Changed 21 months ago by dsd

  • milestone changed from Not Triaged to 13.1.0

  Changed 16 months ago by godiard

  • cc dsd added
  • milestone changed from 13.1.0 to 13.2.0

Dsd, we talked about this issue in the last friday meeting.

I have tested it with os4, and is working ok on xo-1 and xo-1.5, but fails on xo-1.75 and xo-4.

follow-up: ↓ 4   Changed 16 months ago by dsd

  • cc dsd removed
  • owner changed from jnettlet to dsd

Has it ever worked on XO-1.75?

in reply to: ↑ 3   Changed 16 months ago by godiard

Replying to dsd:

Has it ever worked on XO-1.75?

Works ok on xo-1.75 12.1.0 o20 (with vmeta). I tested it again.

For reference, the SL ticket is http://bugs.sugarlabs.org/ticket/4211

  Changed 16 months ago by dsd

Disabling composite of PictOpOver (op 3) makes the text appear fine upon rotation. So this is likely to be a bug in the X driver.

I am attaching a standalone app which can be used to diagnose/reproduce this. I would appreciate it if the text insertion caret was invisible or at least does not blink, as it is producing graphics driver traffic which distracts from the task at hand. Gonzalo, can you help me here? Does not have to be an elegant solution.


For reference, I did start to investigate the rendering of the text insertion caret as that is rendered badly too upon rotation.

To draw the caret the operation is something like: PictOpSrc from (121,2) of a source picture of dimensions 1200x900, to (0,0) of a destination picture of dimensions 5x60, composite operation width=5 height=60.

To hide the caret the operation is something like: PictOpOver from (0,0) of the same 5x60 source picture, to (121,2) of the 1200x900 destination picture, composite operation width=5 height=60.

Changed 16 months ago by dsd

standalone abi widget app

  Changed 16 months ago by godiard

Attached example abi2.py use GSettings to avoid blinking the cursor.

I have tried setting the cursor timeout but is ignored.

The relevant code in abiword is in the file src/af/gr/xp/gr_Caret.cpp

Changed 16 months ago by godiard

  Changed 16 months ago by dsd

Thanks, that is better.

My test script now generates 16 composite operations that are accepted by the driver.

#!/bin/bash
python abi2.py &
sleep 6
xrandr -o left
sleep 10

I have checked each one by dumping the image data of the two pixmaps being composited, and the output composited image, and in each case the driver is doing as it is told. So I no longer suspect a driver bug. For future reference the hacks used for this debugging are saved at http://dev.laptop.org/~dsd/20130510/

follow-up: ↓ 9   Changed 16 months ago by godiard

Then is a problem in AbiWord code?

Why you think this happen only in xo-1.75/4 and not in older models?

in reply to: ↑ 8   Changed 16 months ago by dsd

Replying to godiard:

Then is a problem in AbiWord code?

I don't think so, although I haven't been able to locate the code that actually does the drawing.

Why you think this happen only in xo-1.75/4 and not in older models?

Not sure yet, but it could be because of a very different set of graphics operations that get accelerated.

  Changed 16 months ago by dsd

  • next_action changed from never set to add to build

It was a driver bug after all, although an easy trap to fall into. Initialisation was being done in the wrong order, which meant that damage extension was not accurately monitoring areas of the screen that were being composited.

http://lists.x.org/archives/xorg-devel/2013-May/036230.html

Fixed in xf86-video-dove-0.3.9.

  Changed 15 months ago by dsd

  • status changed from new to closed
  • resolution set to fixed

Tested 13.2.0 build 7 on XO-1.75 and XO-4, Write is usable when the screen is rotated.

Note: See TracTickets for help on using tickets.