About Moving/Transform Preview Options ("Rant"/Suggestion)

The Issue
Few months ago I discovered a issue related to image transforming on Krita when Instant Preview is enabled, where some layers get real weird blurred “artifacts” around them (You can see it at this video https://bugsfiles.kde.org/attachment.cgi?id=166110), and I’ve reported this issue few months ago (Here 480973 – Layers getting blurred after transform other layer when "accurate instant preview" is enabled). I know that the manpower of Krita is small to the large scale of bugs reported everyday (And bugzilla is not very inviting), but I had no answer about this annoying issue that can affect the experience of some users, since no other art software have this same problem and Krita didn’t used instant preview on Transform Tools by default until 5.x version, “masking” the issue.

My suggestion
I don’t know when and if this issue can be solved, but I have some suggestions to avoid the user find it until a solution be found.
1 - Make “Fast” the default option for moving or transforming layers or layer groups again, as it was in 4.x and like GIMP is.
2 - Instead of the “Instant Preview” box in Configure Krita > Performance, rename it to “Transform Settings”, where will have a option box named “Transform Preview”, where you can select “Fast” or “Accurate”, and a checkbox with “Enable Instant Preview for Transform Tools”, with a warning or recommendation like “If want to work with images on canvas, keep it disabled”.
3 - Remove the “Preview” option from Transform > Tool Options > Preview, and make the user change it from the transform settings instead.

Conclusion
I know the reasons that could made “Instant Preview” the default option for transforming and moving objects on Krita, but I think that isn’t good ship a feature that have flaws enabled by default, while the “Fast” or even “Accurate” options do the job better as default. It doesn’t seems something harder to fix, but would be prudent do a step back before make this feature enabled by default.

1 Like

I tried to reproduce this, and what I found out is that it happens when you target layer with transform tool while also being zoomed out. If I start the transform while zoomed in then zoom out during transform it won’t happen. Also it only affects layer underneath if both layers are close to each other.

Now what’s weird is that like 90% of the time both layers (transformed and other in stack) refresh properly after applying transformation, sometimes with a short delay, but sometimes it won’t automatically refresh. If you re-select affected layer with transform tool, drag a layer across, or hide/unhide layer it it’ll refresh the preview.

I’ve encountered/reported similar/same issues with certain filters that also fail to refresh preview properly and create blocks of artifacts around the layer that affect other layers. Where also hiding/unhiding layer fixes it.

An annoyance but nothing destructive to any layer. However, it shouldn’t be happening.

1 Like

The funny stuff is that It just happens with instant preview enabled, if you disable it (in the tool settings or changing the canvas filtering to bilinear or bellow) the issue doesn’t happen anymore.

By default, Krita also uses Instant Preview when applying filters, can you disable it and test it again? You can disable this function on Settings>Configure Krita>Performance>Instant Preview. You can also test it with canvas acceleration disabled or using Nearest Neighbor/Bilinear as Scaling Mode, because Instant Preview doesn’t work with them.

1 Like

Idk, the whole Instant Preview thing always had weird issues, with brush engines as well. I know it’s there as a way to increase performance and it does that (to some extent) but too often it won’t work as intended, creating extra steps to refresh/update layers manually. Maybe it gets replaced one day with GPU acceleration, at least for transform, move and filters.

The issue I mentioned with filters seems to be something more than just Instant Preview, tried without and it happens even without it. It’s as if only the block in dimensions of layer’s content get updated correctly, not entire canvas size. Or in case of mask, not just the content (non-alpha) but also the alpha around the content in a shape of block. :person_shrugging: