Locking/Unlocking layer: does it need to recompute everything?

Ok here a synthesis of my tests

There’s different cases, but all have the problem.

Documents used:

  • A4@600dpi document for my tests (usual document I use to draw) - maybe on smaller document problem is not as visible as on big document

  • Used a simple layer content but important for my tests, implies to all canvas surface

Case Description 4.2.9 4.3.0 / 4.4.8 / 5.0.6 / 5.1.0 / 5.2.0a
Case 1 Paint layer + transform mask OK KO
Case 2 Paint layer + filter mask OK KO
Case 3 Group + Filter layer + Case1 OK KO
(many long minutes -more than 10- to wait!!)
Case 4 Group + Filter layer + Case2 OK KO
Case 5 Case 1 + Case 2 OK KO
Case 6 Group + Filter layer + Case1 + Case 2 OK KO
(many long minutes -more than 10- to wait!!)
Case 7 Group + Filter layer + paint layer OK KO

What I can say:

  • Lock/Unlock (on layer and/or filter mask) generate an update process, only if layer is visible (if not visible, it’s Ok)

  • Alpha Lock/Unlock generate an update process, only if layer is visible (if not visible, it’s Ok)

  • In case 4/6, Lock/Unlock the group doesn’t trigger an update

  • In case 7, Lock/Unlock the filter layer generate an update process, only if layer is visible (if not visible, it’s Ok)

  • In case 7, Lock/Unlock the paint layer generate an update process of filter layer, only if filter layer is visible (if not visible, it’s Ok)
    – If paint layer is not visible, Lock/Unlock paint layer generate an update process if filter layer is visible

  • When update process is started, and especially for cases 3/4/6 that’s just hell: no real refresh applied to layer content but it seems there’s a kind of loop, like the refresh made on the locked layer generate multiple update of filter layers above (be patient if you test it!)

  • It easier to see the case when using a transform mask like Mesh or Perspective than Free (as they need more computation)
    – Probably with filter layer that need more intensive computation, problem is more visible too

  • There’s clearly 2 distinct problems that need 2 bugs to be opened:
    – One about Lock/Unlock that generate a refresh
    → Started from Krita 4.3.0 for what I can see from my tests
    – An another one about how a refreshed layer is impacting/impacted by other filter layer

    Not possible for me tonight to open it, I’ll try to do it for Sunday evening at the latest

I’m wondering if problem could be linked with this one:

@raghukamath with these precisions if you’re able to confirm that you can reproduce cases systematically it could be a good thing to get another point of view before opening the bug: you may have other cases or information that can be used to open bug (especially if on your side you’re not able to get the problem systematically, but I think on my case I saw the problem due to my use of mesh transform mask for which computation is CPU consuming)

Grum999