Summary: | Canvas lag if zoomed in and rotated to a specific degree | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Matthäus Egorov <techbot121> |
Component: | Usability | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dimula73, halla, megaflooder1 |
Priority: | NOR | ||
Version: | 2.9.8 | ||
Target Milestone: | --- | ||
Platform: | Microsoft Windows | ||
OS: | Microsoft Windows | ||
URL: | http://3kv.in/~techbot/ShareX/2015/11/09/21-03_138.webm | ||
Latest Commit: | http://commits.kde.org/krita/08fd3aa8e554557728f60f8571e51364070c09e8 | Version Fixed In: | |
Attachments: | dxdiag output |
Description
Matthäus Egorov
2015-11-09 20:34:49 UTC
Hi Matthäus, Thanks for your report. Is this with opengl enabled or disabled? Hi, I had OpenGL enabled, it's worse with it off. Hi, Matthaeus! Could you tell, what CPU and GPU model do you have? Created attachment 95482 [details]
dxdiag output
Hi, Matthaeus! Could you please make a video, which compares the update speed on rotated and non-rotated canvas with openGL enabled? I just checked on my Linux build and it seems that the update throughput on rotated canvas is, yes, a bit slower 50fps instead of 80 fps on non-rotated canvas, but our glSync check should make this slowness *not* lag, but tear the image a bit. So I would like to see a video of the bug to understand what happens. I attached it as "URL" when I created this bug report, but I made another one just in case. http://3kv.in/~techbot/ShareX/2015/11/14/2015-11-14%2012-47-35.mp4 the weird thing about it is, if I zoom in further it's fine again. It only seems to happen at a specific zoomlevel. That sounds like we're hitting a limit on the gpu and the gpu memory at those points. Git commit 08fd3aa8e554557728f60f8571e51364070c09e8 by Dmitry Kazakov. Committed on 25/03/2016 at 12:08. Pushed by dkazakov into branch 'master'. Fix "openGL lag at zoom 2000 + rotation" The problem was not related to the openGL actualy. It was caused by the implementation of QPainter::clipRegion() which generated 20k+ rectangles from a rotated rect when rotation angle was near to a 0 or 90deg. WARNING for the future: Never use QPainter::clipRegion(). Use KisPaintingUtils::safeClipRegion() instead. It workarounds the issue returning a bit bigger rect. Fixes T1446 CC:kimageshop@kde.org M +3 -1 libs/flake/KoShapeContainer.cpp M +3 -1 libs/flake/KoShapeManager.cpp M +0 -3 libs/flake/tools/KoCreateShapeStrategy.cpp M +0 -2 libs/flake/tools/KoShapeRubberSelectStrategy.cpp M +1 -0 libs/global/CMakeLists.txt A +51 -0 libs/global/kis_painting_tweaks.cpp [License: GPL (v2+)] A +45 -0 libs/global/kis_painting_tweaks.h [License: GPL (v2+)] M +4 -1 plugins/flake/textshape/TextShape.cpp M +2 -1 plugins/flake/textshape/textlayout/KoTextLayoutArea_paint.cpp M +3 -1 plugins/flake/vectorshape/VectorShape.cpp http://commits.kde.org/krita/08fd3aa8e554557728f60f8571e51364070c09e8 *** Bug 357765 has been marked as a duplicate of this bug. *** |