Created attachment 140867 [details] screenshot of visual bug SUMMARY Updated to 4.4.7 and now the tools create a rectange artefact trail on moving. Impossible to use anymore... STEPS TO REPRODUCE 1. attached a screenshot 2. 3. OBSERVED RESULT EXPECTED RESULT SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION
* Please provide the system information for bug reports. * Do you have a reference image on top of your canvas?
Both you're requesting I think I've already added. MS Windows 10 and a screenshot is attached, too.
No, go to help->system information for bug reports, and paste the contents in this bug report. And you have not said whether there is a reference image on top of your canvas.
Sorry, now I got it. Yes, I had a reference image loaded when the problem occured, didn't test without one, because I just opened my current project and rolled back to 4.4.3 right after observing the bug. Krita Version: 4.4.3 Languages: en_US, en Hidpi: true Qt Version (compiled): 5.12.9 Version (loaded): 5.12.9 OS Information Build ABI: x86_64-little_endian-llp64 Build CPU: x86_64 CPU: x86_64 Kernel Type: winnt Kernel Version: 10.0.19042 Pretty Productname: Windows 10 (10.0) Product Type: windows Product Version: 10 OpenGL Info Vendor: "Google Inc." Renderer: "ANGLE (Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0)" Version: "OpenGL ES 3.0 (ANGLE 2.1.0.57ea533f79a7)" Shading language: "OpenGL ES GLSL ES 3.00 (ANGLE 2.1.0.57ea533f79a7)" Requested format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::CompatibilityProfile) Current format: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile) Version: 3.0 Supports deprecated functions false is OpenGL ES: true QPA OpenGL Detection Info supportsDesktopGL: true supportsAngleD3D11: true isQtPreferAngle: true Hardware Information GPU Acceleration: auto Memory: 16282 Mb Number of Cores: 12 Swap Location: Current Settings Current Swap Location: Current Swap Location writable: true Undo Enabled: true Undo Stack Limit: 30 Use OpenGL: true Use OpenGL Texture Buffer: true Use AMD Vectorization Workaround: false Canvas State: OPENGL_SUCCESS Autosave Interval: 900 Use Backup Files: true Number of Backups Kept: 1 Backup File Suffix: ~ Backup Location: Same Folder as the File Backup Location writable: false Use Win8 Pointer Input: false Use RightMiddleTabletButton Workaround: false Levels of Detail Enabled: false Use Zip64: false Display Information Number of screens: 1 Screen: 0 Name: \\.\DISPLAY1 Depth: 32 Scale: 1 Resolution in pixels: 1920x1080 Manufacturer: Model: Refresh Rate: 144
Okay, then I can confirm: I've seen this with a reference image as well, but not without one. I never noticed before because I usually do not trace over a reference image, but have one besides my canvas.
Ah, and you're using Krita 4.4.3 so it isn't a recent regression.
Argh, no I misread, sorry.
If you disable fractional hidpi scaling in Krita's settings, then 4.4.7 will not show the cursor artefacts anymore.
Unfortunately this doesn't work in my case. I also tried to disable Hi-DPI support completely, no effect!
That's strange... I just checked on my Yoga, set display scaling to 1, like you have, and I didn't get any artefacts anymore. And I set it to 1.25, and then disabled fractional scaling support, and didn't get artefacts; when I enabled it, I did.
Now that I reinstalled 4.4.7 to test your recommendation I can tell you that I not only see artefacts in case of drawing on reference images, even if they are more massive, but I also see some without reference images. When moving the pencil, vertical and horizontal strokes appear and also vanishing again after a while or on rotating and zooming the canvas. The length seems to somehow correlate to the rotation of the canvas, on higher rotations just dot appear sometimes. Will go back to 4.4.3 again, if it is a bigger issue you might get more and maybe better feedback from others soon. Thank you for helping.
Looked into this bug (can confirm in 5.1.0 beta 1 and recent master), and here's my findings: When moving a brush outline cursor over a reference image with fractional display scaling, 1-screen-pixel-wide/tall transparent lines appear at the left and bottom edges of the update rect. Changing this line in KisOpenGLCanvas2::paintGL() gc.setClipRect(updateRect); to this gc.setClipRect(updateRect.adjusted(-1, 0, 0, 1)); prevents them from appearing. I suspect it's some kind of rounding issue in Qt.
Dmitry said he'll check this solution.
Git commit 213f967eced91bc22767d700f47d0973b4f681fd by Dmitry Kazakov. Committed on 20/09/2022 at 10:23. Pushed by dkazakov into branch 'master'. Fix artifacts when hovering over reference images in HiDPI mode Thanks Freya Lupen for the provided patch! M +1 -1 libs/ui/opengl/kis_opengl_canvas2.cpp https://invent.kde.org/graphics/krita/commit/213f967eced91bc22767d700f47d0973b4f681fd
Git commit fed8729ecd3021fee8ebf1cd6ae9d74453960935 by Dmitry Kazakov. Committed on 20/09/2022 at 10:24. Pushed by dkazakov into branch 'krita/5.1'. Fix artifacts when hovering over reference images in HiDPI mode Thanks Freya Lupen for the provided patch! (cherry picked from commit 213f967eced91bc22767d700f47d0973b4f681fd) M +1 -1 libs/ui/opengl/kis_opengl_canvas2.cpp https://invent.kde.org/graphics/krita/commit/fed8729ecd3021fee8ebf1cd6ae9d74453960935
The fix is reverted currently since it causes bug 460577
Git commit b18557c58f86429ba728341a4401fba53d42f522 by Dmitry Kazakov. Committed on 17/11/2022 at 13:33. Pushed by dkazakov into branch 'master'. Disable partial updates for fractional HiDPI cases There is some bug either in QPainter or in our partial updates patches that cause an update issue in reference images decoration. Basically, the crop rect of the update should be aligned to the physical pixels, but it is not. M +11 -1 libs/ui/opengl/kis_opengl_canvas2.cpp https://invent.kde.org/graphics/krita/commit/b18557c58f86429ba728341a4401fba53d42f522
Git commit ef521dac6125ec718200ca9b689fb7ae69f51482 by Dmitry Kazakov. Committed on 17/11/2022 at 13:33. Pushed by dkazakov into branch 'krita/5.1'. Disable partial updates for fractional HiDPI cases There is some bug either in QPainter or in our partial updates patches that cause an update issue in reference images decoration. Basically, the crop rect of the update should be aligned to the physical pixels, but it is not. M +11 -1 libs/ui/opengl/kis_opengl_canvas2.cpp https://invent.kde.org/graphics/krita/commit/ef521dac6125ec718200ca9b689fb7ae69f51482
The bug is currently fixed with a workaround. Now partial updates are completely disabled in fractional HiDPI mode. Ideally, we need to fix that somewhere in Qt.
Git commit d486a0605f8d120130eaeb09753829a484d9654f by Alvin Wong. Committed on 14/09/2023 at 20:15. Pushed by alvinwong into branch 'master'. Set updateRect to widget rect on fractional hidpi screen This fixes the warning `KoShapeManager::paint Painting with a painter that has no clipping will lead to too much being painted!`, regression from ef521dac6125ec718200ca9b689fb7ae69f51482. M +2 -0 libs/ui/opengl/kis_opengl_canvas2.cpp https://invent.kde.org/graphics/krita/-/commit/d486a0605f8d120130eaeb09753829a484d9654f
Git commit 3323e4e3308ce413e8439536285e42814ce628c8 by Alvin Wong. Committed on 14/09/2023 at 20:15. Pushed by alvinwong into branch 'krita/5.2'. Set updateRect to widget rect on fractional hidpi screen This fixes the warning `KoShapeManager::paint Painting with a painter that has no clipping will lead to too much being painted!`, regression from ef521dac6125ec718200ca9b689fb7ae69f51482. (cherry picked from commit d486a0605f8d120130eaeb09753829a484d9654f) M +2 -0 libs/ui/opengl/kis_opengl_canvas2.cpp https://invent.kde.org/graphics/krita/-/commit/3323e4e3308ce413e8439536285e42814ce628c8