Multithreaded Brush bugs
Closed, ResolvedPublic

Description

  • imagepipe brushes do not switch frames

Related Objects

StatusAssignedTask
ResolvedNone
Resolveddkazakov
dkazakov created this task.Oct 23 2017, 3:11 PM
scottpetrovic added a subscriber: scottpetrovic.EditedOct 23 2017, 3:25 PM

I tested the branch out on my Ubuntu 16.10 box. I tested various things including painting with different engines, different sizes, and instant preview.

It overall seemed to work very well and very fast! Great job!

The main issue I saw is that the new brush speed-ups don't play nicely with Instant Preview with pixel engine presets. I occasionally see artifacts and areas not being updated if I turn on Instant Preview. The instant preview seemed to work with what it was doing, but some part of the canvas didn't seem to be updating correctly. This doesn't always happen, but enough that it probably needs to be looked at

The live brush preview in the brush editor doesn't show anything for pixel engine brushes, but that isn't surprising. It probably needs to point to a different class for painting the preview. Right now the live preview uses the same class for painting all the engines. Maybe this is something I should be doing since I added that. That code is painting with the KisPainter class and is doing the painting in kis_preset_live_preview.cpp:274 :)

dkazakov renamed this task from Vector Brush bugs to Multithreaded Brush bugs.Oct 26 2017, 5:54 PM
dkazakov updated the task description. (Show Details)Oct 26 2017, 6:11 PM

Ah.... I noticed that in the multithreaded branch, the "fuzzy stroke" sensor is a bit broken...

Ah.... I noticed that in the multithreaded branch, the "fuzzy stroke" sensor is a bit broken...

What exactly is "wrong"? It seem to work fine here...

Use fuzzy stroke with the hue or value options in the pixel brush: it'll seem as if it is working on a few dabs before generating a new random value.

Use fuzzy stroke with the hue or value options in the pixel brush: it'll seem as if it is working on a few dabs before generating a new random value.

Okay, reproduced. I will fix it now.

@dkazakov - I was doing some painting this morning on my Surface pro and got this crash. Not sure if it is related to your work, but probably needs to be fixed.. https://bugs.kde.org/show_bug.cgi?id=386523

Moar bugs:

  1. Pixel1 doesn't work anymore.
  2. Weird one with the rectangle tool:
    1. Select a pixel brush
    2. select the rangtanlge tool.
    3. set outline to none and fill color to a color.
    4. paint and observe it doesn't update the canvas.
    5. select outline: brush
    6. paint and observe it does fill the canvas.

Crash that is different from Scott's:
https://bugs.kde.org/show_bug.cgi?id=386498

I noticed on linux the pixel brushes seem to stop working when the pixel size gets under 1 or 2 pixels. If it is larger than that they are ok.

alvinhochun added a subscriber: alvinhochun.EditedNov 6 2017, 4:16 PM

So here are what I have:

  1. The built-in presets PixelArt_Dithering, PixelArt_Square and PixelArt_Round seems to always crash for me after a few strokes. They also stop drawing on the canvas usually after I drew half a stroke..
  2. Pixel1 doesn't draw anything, but if I draw with PixelArt_Square after having tried to draw with Pixel1, I can sometimes see traces around the new stroke that looks like what the Pixel1 preset should've drawn.
  3. I was testing with "deevad 2e big brush" from deevad's 8.2 brush pack, and I get some artifacts for certain quick strokes:
rempt added a subscriber: rempt.Nov 8 2017, 12:18 PM

A regression with brushes with really big textures:

https://bugs.kde.org/show_bug.cgi?id=386642

I experiencing crashes with textured brushes. Noticed on brush like here https://phabricator.kde.org/T7052 but it happens with other too. It need a couple minutes of painting to get the crush, simply brushes seems to be more stable but I got crashes with them too. Even just hard round with texture can crash.

Drawing outside the main canvas in wrap around mode is broken with the pixel engine, getting disconnected line segments.

When using the "deevad 2c flat" brush, it doesn't seem to be reducing the update rate for a faster stroke? On the other hand the update rate of "deevad 2e big brush" is horribly low...

rempt assigned this task to dkazakov.
rempt triaged this task as Unbreak Now! priority.

I noticed on linux the pixel brushes seem to stop working when the pixel size gets under 1 or 2 pixels. If it is larger than that they are ok.

I have either just fixed or cannot reproduce it anymore :)

Some opinions on update rate: https://bugs.kde.org/show_bug.cgi?id=386767

Fixed now!

I experiencing crashes with textured brushes. Noticed on brush like here https://phabricator.kde.org/T7052 but it happens with other too. It need a couple minutes of painting to get the crush, simply brushes seems to be more stable but I got crashes with them too. Even just hard round with texture can crash.

Fixed now!

On the other hand the update rate of "deevad 2e big brush" is horribly low...

'deevad 2e big brush' is fixed now

Now I have only two reports left:

  • wraparoung mode
  • 'deevad 2c flat' (perhaps also got fixed in the meantime)
dkazakov added a comment.EditedDec 1 2017, 2:09 PM

When using the "deevad 2c flat" brush, it doesn't seem to be reducing the update rate for a faster stroke?

I have checked. The reduction works, it is just the brush is too slow. It renders the stuff at 10fps

Wraparound bug is confirmed

I think all the multithreaded brush bugs I know about are fixed now! :)

Okay, so this one seems like it is related to the multithreaded brush bugs, as it only happens with pixel brushes:

https://bugs.kde.org/show_bug.cgi?id=387725

woltherav closed this task as Resolved.Apr 18 2019, 10:04 AM