Bug report #4011

Map canvas flickers when content is dragged

Added by jekhor - over 12 years ago. Updated over 9 years ago.

Status:Closed
Priority:Normal
Assignee:-
Category:Map Canvas
Affected QGIS version:2.2.0 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:Yes Resolution:wontfix
Crashes QGIS or corrupts data:No Copied to github as #:13998

Description

Map canvas flickers when content is dragged. This issue caused by f4d26d6211830a866030a333236dcfbf15e077aa "Fix for resize crash, ticket #2714". This fix seems dirty :)

This issue is reproduced in 1.7.0 also.

Rendering_shp.7z (1.43 MB) Filipe Dias, 2012-04-12 01:30 AM


Related issues

Related to QGIS Application - Bug report #5008: Map canvas flicker when qgis window gains/losts focus or ... Closed 2012-02-14

History

#1 Updated by Paolo Cavallini over 12 years ago

  • Pull Request or Patch supplied set to No
  • Category set to Map Canvas

#2 Updated by sowelu - over 12 years ago

Just wanted to update this issue as it is still a big problem on Ubuntu. The MapCanvas still flickers constantly as the map is panned. It also constantly flickers in the 'dirty' rectangle while creating or editing shapes. The flicker is bad enough that QGIS is not usable for editing vectors. The problem is apparent in the master version (27/Oct/2011) and also in the final_1-7-1 tag, built on Kubuntu 11.10. The flickering is not apparent if you check out the commit before the one indicated above.

Roland

#3 Updated by Tim Sutton over 12 years ago

I can replicate on ubuntu 11.10 running xfce4

see

http://www.youtube.com/watch?v=w3xO21xXxeI

#4 Updated by Giovanni Manghi over 12 years ago

I see it too... but I am almost sure that until a few days ago (qgis master on Ubuntu) it wasn't doing it.

Tim Sutton wrote:

I can replicate on ubuntu 11.10 running xfce4

see

http://www.youtube.com/watch?v=w3xO21xXxeI

#5 Updated by Alexander Bruy over 12 years ago

See also #3771

#6 Updated by Giovanni Manghi over 12 years ago

  • Target version set to Version 1.7.4

#7 Updated by Gabriele Monfardini about 12 years ago

  • Affected QGIS version set to master
  • Crashes QGIS or corrupts data set to No

Confirmed on ubuntu 11.10 running kde on qgis master 2cea349 (20120214)

#8 Updated by jekhor - about 12 years ago

  • Status changed from Open to Closed
  • Resolution set to fixed

Seems be fixed in current master (91da6af5acf4ea09218a495a1ea85dc0ccae267e).

#9 Updated by jekhor - about 12 years ago

  • Status changed from Closed to Reopened
  • Resolution deleted (fixed)

Reopen bug, because I didn't found any fixes in code. Probably bug is not reproduced only at my system. Confirmations?

#10 Updated by Giovanni Manghi about 12 years ago

  • OS version deleted (unstable)
  • Status changed from Reopened to Feedback
  • Target version changed from Version 1.7.4 to 35
  • Operating System deleted (Debian)

jekhor - wrote:

Reopen bug, because I didn't found any fixes in code. Probably bug is not reproduced only at my system. Confirmations?

I update qgis master daily and since the bug surfaced it never went away for me. Anyone else?

#11 Updated by Filipe Dias almost 12 years ago

Im adding a video comparing the rendering between QGIS, SAGA GIS and Udig.

I think the rendering in Udig is by far the more "confortable" to the eye, because it doesnt redraw everything, everytime "Pan" is used. SAGA GIS has an intermediate performance and it redraws the canvas a little faster than QGIS.

#12 Updated by Giovanni Manghi almost 12 years ago

  • Target version changed from 35 to Version 1.8.0

#13 Updated by Giovanni Manghi almost 12 years ago

  • Priority changed from Normal to High

#14 Updated by Matthias Kuhn almost 12 years ago

I reverted patch f4d26d6211830a866030a333236dcfbf15e077aa and the flicker disappeared. (This makes sense, as this patch disabled back-buffering)

I then tried to reproduce bug #2714 but QGis wouldn't crash (Qt version 4.8.1). Maybe this issue is solved in qt meanwhile?

#15 Updated by Giovanni Manghi almost 12 years ago

Matthias Kuhn wrote:

I reverted patch f4d26d6211830a866030a333236dcfbf15e077aa and the flicker disappeared. (This makes sense, as this patch disabled back-buffering)

I then tried to reproduce bug #2714 but QGis wouldn't crash (Qt version 4.8.1). Maybe this issue is solved in qt meanwhile?

Can anyone of the main developers leave feedback on this? If we can get rid of flickering it would be great... Thanks.

#16 Updated by Martin Dobias almost 12 years ago

It would be helpful to find out which versions of Qt produce the crashed from #2714 - for those ones the workaround could be kept (checking qVersion) and for the rest there would be flicker-free dragging.

#17 Updated by Giovanni Manghi almost 12 years ago

Martin Dobias wrote:

It would be helpful to find out which versions of Qt produce the crashed from #2714 - for those ones the workaround could be kept (checking qVersion) and for the rest there would be flicker-free dragging.

can anyone help give an answer to Martin question?

#18 Updated by Pedro Venâncio almost 12 years ago

I also have this problem, both in Debian squeeze, wheezy, Xubuntu and Lubuntu 12.04, and on different machines.

I leave here another screencast that shows the problem - http://goo.gl/URAVh

QGIS 1.7.4 and 1.8.

#19 Updated by Matthias Kuhn over 11 years ago

Looking at Marcos update for Issue #2714 it could be reproduced with at least Qt 4.6.2 and 4.7.

Regarding the fact that upcoming releases probably only in very rare cases will run with affected Qt versions I'd propose to use this fix with a pre-compiler switch. This would prevent the (admittedly small) overhead of asking the Qt version on every repaint. A warning could be thrown if one tries to compile on a system with [Qt < 4.8 && OS != Linux] without the fix.

#20 Updated by Giovanni Manghi over 11 years ago

Matthias Kuhn wrote:

Looking at Marcos update for Issue #2714 it could be reproduced with at least Qt 4.6.2 and 4.7.

Regarding the fact that upcoming releases probably only in very rare cases will run with affected Qt versions I'd propose to use this fix with a pre-compiler switch. This would prevent the (admittedly small) overhead of asking the Qt version on every repaint. A warning could be thrown if one tries to compile on a system with [Qt < 4.8 && OS != Linux] without the fix.

please raise this issue/discussion/proposal in the developer mailing list. It is a pretty serious issue and nobody seems to care much.

#21 Updated by Jürgen Fischer over 11 years ago

Qt 4.8.1 is also still affected (see ![Qgis-developer] Map canvas flickers)

#22 Updated by Giovanni Manghi over 11 years ago

  • Target version changed from Version 1.8.0 to Version 2.0.0
  • Pull Request or Patch supplied changed from No to Yes

#23 Updated by Giovanni Manghi over 11 years ago

Anyone affected by this issue please give a try to this fork/branch

https://github.com/matthias-kuhn/Quantum-GIS/tree/release-1_8

it includes a patch that adds an option to enable/disable backbuffer.

#24 Updated by Matthias Kuhn over 11 years ago

Fixed on master

New config option in Settings=>Options=>Rendering=>Enable backbuffer
(Only X11 / Linux )

If enabled, drawing is flickerfree, but rendering can't be cancelled (by clicking esc and no incremental feature drawing is possible)

A good fix will be available as soon as threading branch is merged

487879df520e74fed0e0cd06a909b6025ae00c43

#25 Updated by Giovanni Manghi over 11 years ago

  • Resolution set to fixed
  • Status changed from Feedback to Closed

#26 Updated by Alexander Bruy over 11 years ago

  • Resolution deleted (fixed)
  • Status changed from Closed to Reopened

Fix from 487879df52 introduces another problem. When backbuffer enabled and layers loaded into map then any docked windows like MessageLog or SEXTANTE toolbox are opened with artifacts, e.g. some GUI elements are not rendered. To reproduce:

  1. enable backbuffer
  2. load any wms layer
  3. open MessageLog

#27 Updated by Giovanni Manghi about 11 years ago

  • Priority changed from High to Normal

#28 Updated by Jigdo Stunk over 10 years ago

Hello,

I am using the QGIS 1.8 debian wheezy build from 'http://qgis.org/debian/ wheezy main' repository, the flickering bug remains on Debian Wheezy stable using KDE, and there is no 'enable backbuffer' option at all anywhere in the settings that I can find.

I would have reported this problem a few months ago but instead began using the 1.9 nightly builds until the dependencies broke over the weekend (not complaining about this -- it is a nightly after all). That coupled with some other problems in 1.9 makes it necessary to use 1.8, but the flicker is so pronounced it is unusable.

Thank you.

#29 Updated by Giovanni Manghi over 10 years ago

  • Status changed from Reopened to Feedback

Alexander Bruy wrote:

Fix from 487879df52 introduces another problem. When backbuffer enabled and layers loaded into map then any docked windows like MessageLog or SEXTANTE toolbox are opened with artifacts, e.g. some GUI elements are not rendered. To reproduce:

  1. enable backbuffer
  2. load any wms layer
  3. open MessageLog

does not happen here/anymore, can you check again?

#30 Updated by Giovanni Manghi over 10 years ago

there is no 'enable backbuffer' option at all anywhere in the settings that I can find.

there are no backports.

#31 Updated by Donovan Cameron over 10 years ago

I got the flickering to go away in KDE by changing some settings in System Settings > Qt Graphics System > Configure the default graphics system of Qt appliations > Default (X11/XRender)

It was set to Raster before - switching to X11/XRender might help for users on KDE for now.

Everything renders smooth now, no flickers for my KDE desktops anymore.

#32 Updated by Daniel Vaz over 10 years ago

Giovanni Manghi wrote:

Alexander Bruy wrote:

Fix from 487879df52 introduces another problem. When backbuffer enabled and layers loaded into map then any docked windows like MessageLog or SEXTANTE toolbox are opened with artifacts, e.g. some GUI elements are not rendered. To reproduce:

  1. enable backbuffer
  2. load any wms layer
  3. open MessageLog

does not happen here/anymore, can you check again?

If we can't reproduce it, I think that we can close this issue.
If it's reproducible, I think that will be a good idea close this issue and open a new ticket, citing this one.

#33 Updated by Daniel Vaz over 10 years ago

  • Status changed from Feedback to Closed

Fixed on master. See thread above.

Reopen if necessary.

#34 Updated by Matthias Kuhn over 10 years ago

Good catch! Thank you very much.
The easiest thing is to start with the environment variable QT_GRAPHICSSYSTEM=X11, so it leaves the rest of your system untouched.
I'm acutally considering a last-minute patch to remove the "Enable Backbuffer" option and instead use QApplication::setGraphicsSystem().
Will do some in-depth testing on that.

Donovan Cameron wrote:

I got the flickering to go away in KDE by changing some settings in System Settings > Qt Graphics System > Configure the default graphics system of Qt appliations > Default (X11/XRender)

It was set to Raster before - switching to X11/XRender might help for users on KDE for now.

Everything renders smooth now, no flickers for my KDE desktops anymore.

#35 Updated by Donovan Cameron about 10 years ago

  • Status changed from Closed to Reopened

Looks like this reared its ugly head in 2.2 and isn't a part of the desktop file anymore. Is it going to be included or is it recommended for package maintainers to append it on their own?

The new option I've tested on linux (KDE specifically):
"env QT_GRAPHICSSYSTEM=native /usr/bin/qgis"

The Arch Wiki explains that there is no longer an X11 option, instead users can use "native" which is the same as X11.

https://wiki.archlinux.org/index.php/KDE#The_Raster_engine_workaround

#36 Updated by Giovanni Manghi about 10 years ago

  • Affected QGIS version changed from master to 2.2.0
  • Status changed from Reopened to Feedback
  • Target version changed from Version 2.0.0 to Version 2.4

Donovan Cameron wrote:

Looks like this reared its ugly head in 2.2 and isn't a part of the desktop file anymore. Is it going to be included or is it recommended for package maintainers to append it on their own?

on what platform are you seeing this? also on master?

#37 Updated by Jürgen Fischer about 10 years ago

  • Target version changed from Version 2.4 to Future Release - High Priority

#38 Updated by Donovan Cameron about 10 years ago

Giovanni Manghi wrote:

on what platform are you seeing this? also on master?

This is on QGIS 2.2, I haven't been able to test on master.
Do you think this is specific to desktops running KDE?

$ uname -a
Linux archasus 3.13.6-1-ARCH #1 SMP PREEMPT Fri Mar 7 22:47:48 CET 2014 x86_64 GNU/Linux

#39 Updated by Giovanni Manghi about 10 years ago

Do you think this is specific to desktops running KDE?

cannot see it on Mint using Cinnamon or Mate.

#40 Updated by Giovanni Manghi over 9 years ago

  • Status changed from Feedback to Closed
  • Resolution set to wontfix

closing for lack of feedback and because with multithreading this should not be an issue anymore anyway.

Also available in: Atom PDF