<div class="gmail_quote">Hi, Lukas!<br><br>Thanks for the change! I'm not sure it'll help to the current engine, but it'll really help when i make a working read-write lock.<br><br>About sampled methods:<br>i guess these conditions are never true =)<br>
floor(x) <= x<br>0 <= x-floor(x)<br><br>2all:<br>It seems that old engine didn't have any exclusive access to tiles (am i right?). Btw, is this exclusive access needed really? <br>In the case of deform brush, KisTopDownUpdateStrategy was requesting read access only, so this very problem will be solved by read/write lock. <br>
But i wonder whether there is any possibility in Krita that two separate threads would request write access to one tile simultaneously? Casper said there was (is) some "the drying filter for watercolors" that can cause it. Is it still applicable to current Krita?<br>
<br><br><br>On Mon, Jun 29, 2009 at 3:31 PM, <a href="mailto:LukasT.dev@gmail.com">LukasT.dev@gmail.com</a> <span dir="ltr"><<a href="mailto:lukast.dev@gmail.com">lukast.dev@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="font-family: 'Sans Serif'; font-size: 10pt; font-weight: 400; font-style: normal;">Hello,<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>boemann pointed me to the dimitry's commit about deform brush and deadlock.<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>I commited change to the deform brush. m_readAccessor is now KisRandomConstAccessor. Maybe it should help.<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>Dimitry wrote:<br>
<span>DeformBrush::bilinear_interpolation. It</span><br>
<pre style="margin: 0px; text-indent: 0px;"><span>crates quite many accessors (btw, they are called 'm_readAccessor',</span></pre><pre style="margin: 0px; text-indent: 0px;"><span>but actually lock a tile for write access =) Lukas, ping! ). These</span></pre>
<pre style="margin: 0px; text-indent: 0px;"><span>accessors fight against KisTopDownUpdateStrategy for access to tiles</span></pre><pre style="margin: 0px 0px 12px; text-indent: 0px;"><span>and they both fall into deadlock forever.</span></pre>
m_readAccessor is created just once in DeformBrush::paint.<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>bilinear_interpolation is doing pretty much the same thing that KisRandomSubAccessorPixel::sampledRawData except I noticed some little different behaviour (artefacts) when used with deform brush.<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>I don't know what is the meaning of these conditions in the KisRandomSubAccessorPixel:: sampled methods:<br>
if (hsub < 0.0) hsub = 1.0 + hsub;<br>
...<br>
if (vsub < 0.0) vsub = 1.0 + vsub;<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>I have code that uses KisRandomSubAccessorPixel but needs to resolve the different behaviour and then I can throw my bilinear_interpolation away.<br>
<p style="margin: 0px; text-indent: 0px;"><br></p>[1] <a href="http://websvn.kde.org/?view=rev&revision=987852" target="_blank">http://websvn.kde.org/?view=rev&revision=987852</a></div><br>_______________________________________________<br>
kimageshop mailing list<br>
<a href="mailto:kimageshop@kde.org">kimageshop@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kimageshop" target="_blank">https://mail.kde.org/mailman/listinfo/kimageshop</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Dmitry Kazakov<br>