[krita] [Bug 445561] Krita 5 16bit integer colorspace canvas rendering is broken on M1

Dmitry Kazakov bugzilla_noreply at kde.org
Tue Nov 30 06:23:25 GMT 2021


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

--- Comment #12 from Dmitry Kazakov <dimula73 at gmail.com> ---
Hi, Ivan!

More questions:

1) Did you check the patches on master or on the top of the failing commit
(07a10c399b693326f5826217bb0c268aeafb7264)? The failing commit had a few other
issues, which can cause invalid memory access. These issues were fixed in
commits a319898a6f80a1080fc9e056d0d74c2cd4abd3e5 and
cd5e1156903f54af811bb7d07141bd4dc1c48de0 

2) Apply this patch, which disables buffering for the tile borders
(https://invent.kde.org/-/snippets/1969). The version before the patch didn't
have it, it wrote directly into the texture (which is actually a deprecated
behavior). The removing this buffering works, then it might be that GPU doesn't
like the fact that we use the same buffer for multiple glTexImage2D() calls
(which is crazy, because the buffers are created specifically for that).

3) Revert the previous patch. Try making the number of texture buffers fixed.
To achieve this, comment out the call to
`m_bufferStorage.allocateMoreBuffers(nextSize)` in
'KisOpenGLImageTextures::recalculateCache()' **and** change the initial number
in `KisOpenGLImageTextures::initBufferStorage()`

    * set numTextureBuffers to 1. It should make the code "almost" like it used
to be before.
    * set numTextureBuffers to 512 (or some other big number). It should catch
the case if the M1's driver has troubles with synchronization of the buffer
flushes (which is a possible cause, looking at the screenshot).

4) Revert all the previous patches and try to enable buffer flushing by
force-returning `true` from `KisOpenGL::useTextureBufferInvalidation()`.

5) If nothing above works, try to check out the last working version of the
code (commit d60aa02cafcc0dd6d9a2881df097847d1a7388d8) and check if 
`m_useBuffer` is actually true in `KisTextureTile::update()`. Afair, we used to
disable buffering on OSX before my patches, so, perhaps, the buffering was just
disabled?

-- 
You are receiving this mail because:
You are watching all bug changes.



More information about the kde-mac mailing list