Since my last update, I can't paint anymore in Krita, it's really too laggy :( It seems to be due to the trilinear filtering on the canvas change, and to appear only on NVIDIA graphics card (ahiemstra told me it's the only kind of hardware he doesn't have, so I guess he tested on ati and intel based cards). So since this change, using nvidia proprietary driver, painting is very slow/broken, and using nouveau driver it is completly broken: it doesn't display strokes on canvas at all, and opening a .kra file shows weird random/broken tiles. I want to precise here that opengl in Krita worked perfectly with both nvidia driver and nouveau on my laptop before this change (and actually even better with nouveau than the nvidia blob in latest ubuntu) . And the worst thing is I can't go back to no-opengl canvas, as then painting is fine but it has issues to display canvas rotation and panning (very slow, and ghost canvas parts on the borders outside when rotating), the brush outline cursor is kinda blinking/more distractive, and probably a few others things that don't work as good as with opengl. But then this is for another bug report. So please either roll-back this change, or find a way to fix this huge regression issue.
Hm, is the qpainter canvas slowness also recent? The panning slowness might have been caused by my enabling smoothing -- maybe the pan tool should disable smoothing and enable it when done. Arjen is working on a new version of the opengl canvas, not sure how far along he is! Maybe we should make the current code path an option until he's done, since it apparently works fine for other people, who had problems with the old code path...
About the Qpainter canvas slowness, as far as I can remember it has always had the issues I describe above. But I've almost always worked with opengl, desactivated it mostly to make some test to compare, so I can't say for sure if it's slower now.
No problem for me: Krita, latest git from main branch, is FAST working with a Nvidia 9500 GT on a canvas of 6000x4800 pixels/15 levels , particularly with the Nouveau driver. I'm on Xubuntu Precise... ^^ The only strange thing is the no centered canvas when zooming, but the performance are very good...
I hate hardware... Animtim, what's the exact type of your card, and how much memory do you have? Ah, the canvas centering on zooming is a known bug; dmitry is working on that.
On my desktop: -Nvidia 9800GT 512MB; 4Go RAM. Only tested with nvidia blob here. Display is good but painting is slow. I tried do do a clean build here, no change. On my laptop: -Nvidia GT 320M 1024MB; 4Go RAM. Tested Nouveau here. Display is broken/unusable here (as explained on original post). Maybe I should do a clean build, as Ico-dy have it working, I wonder why it bugs here.
:( A clean rebuild on the laptop didn't change anything, still this strange bug (drawing on the canvas, nothing is displayed/canvas stays white, only the layer thumbnail show the strokes; same thing when opening an existing file, it's not properly displayed, weird tiles bug).
I can confirm slow painting with trilinear filtering in OpenGL canvas. Maybe we should add option to configuration to select scaling canvas quality (similarly to what KWin has in System Settings in Advanced tab) Card: NVidia 9200M driver: proprietary binary blob
Animtim, Lukas, have you tried the latest Nvidia driver? http://www.nvidia.com/object/unix.html Do you have the compositing enabled?
I'm using Fedora package from rpmfusion repositary. It's not advised to Fedora users to install the driver directly from the website as NVidia package some stuff that causes problems in Fedora, some libX*** library. I have compositing enabled.
I only tried the ones in repository. I had "current version" installed, I've switched to "post release update version", but the latest released is not there yet (the one I've installed now is 295.49 )
Could yo utry with compositing disabled?
Ok, I've tried too with Nvidia proprietary driver, version 295.40... Result: Under Xfce with/without compositing enabled and under Xfce+Openbox without compositing enabled Krita is fast and smooth. ^^
Actually, after some more investigation by animtim and me, we found out the actual issue, which is that input is limited to the refresh of the canvas. It is very noticable when making fast circles on the canvas, with the OpenGL canvas strokes become jagged and distorded, with the QPainter canvas everything is smooth.
*** Bug 313492 has been marked as a duplicate of this bug. ***
Git commit f1c7e5d5fae79773cbdb96bcc4ac403bf247c967 by Dmitry Kazakov. Committed on 20/01/2013 at 07:59. Pushed by dkazakov into branch 'master'. Added a workaround for OpenGL bended lines There are two reasons why the lines might become bended: 1) swapBuffers() call waits for the display VSync for about 6 ms, all the events seem to be dropped during this time. 2) When painting very *huge* circles with very small brush (circles ~ 3000px in diameter, brush ~5px) some another factor appears. I cannot tell for sure, but this is, probably, texture loading. This patch fixes only the first (!) reason of line bending. First, it asks Qt to use single buffered contexts. Then, if a single buffered context is not available, it asks openGL to disable VSync. M +10 -2 krita/ui/opengl/kis_opengl_canvas2.cpp A +206 -0 krita/ui/opengl/kis_opengl_canvas2_p.h [License: GPL (v2+)] http://commits.kde.org/calligra/f1c7e5d5fae79773cbdb96bcc4ac403bf247c967
Git commit 5d00100936c1c7b2420bc27238a6fa7eacb82e8d by Dmitry Kazakov. Committed on 20/01/2013 at 07:59. Pushed by dkazakov into branch 'krita-fixed-transform-kazakov'. Added a workaround for OpenGL bended lines There are two reasons why the lines might become bended: 1) swapBuffers() call waits for the display VSync for about 6 ms, all the events seem to be dropped during this time. 2) When painting very *huge* circles with very small brush (circles ~ 3000px in diameter, brush ~5px) some another factor appears. I cannot tell for sure, but this is, probably, texture loading. This patch fixes only the first (!) reason of line bending. First, it asks Qt to use single buffered contexts. Then, if a single buffered context is not available, it asks openGL to disable VSync. M +10 -2 krita/ui/opengl/kis_opengl_canvas2.cpp A +206 -0 krita/ui/opengl/kis_opengl_canvas2_p.h [License: GPL (v2+)] http://commits.kde.org/calligra/5d00100936c1c7b2420bc27238a6fa7eacb82e8d
Git commit abe5d845ec59f2373d288d8e09b61dba9c84adc9 by Dmitry Kazakov. Committed on 20/01/2013 at 07:59. Pushed by dkazakov into branch 'calligra/2.6'. Added a workaround for OpenGL bended lines There are two reasons why the lines might become bended: 1) swapBuffers() call waits for the display VSync for about 6 ms, all the events seem to be dropped during this time. 2) When painting very *huge* circles with very small brush (circles ~ 3000px in diameter, brush ~5px) some another factor appears. I cannot tell for sure, but this is, probably, texture loading. This patch fixes only the first (!) reason of line bending. First, it asks Qt to use single buffered contexts. Then, if a single buffered context is not available, it asks openGL to disable VSync. M +10 -2 krita/ui/opengl/kis_opengl_canvas2.cpp A +206 -0 krita/ui/opengl/kis_opengl_canvas2_p.h [License: GPL (v2+)] http://commits.kde.org/calligra/abe5d845ec59f2373d288d8e09b61dba9c84adc9
*** This bug has been marked as a duplicate of bug 300668 ***