SUMMARY When opening a file with vector layers on Krita for Android, these layers are completely empty. STEPS TO REPRODUCE 1. Open up a file with vectors in them, for example one of the comic templates. 2. Do this on both desktop and android krita. 3. Observe differences OBSERVED RESULT The file on android krita will have no vectors visible. EXPECTED RESULT The file on android Krita opens as close as possible to desktop version.
Log viewer on android ===================== Warning: requested data for unknown action "toggle-edit-mode" Warning: requested data for unknown action "align-relative" Warning: requested data for unknown action "align-left" Warning: requested data for unknown action "align-centerh" Warning: requested data for unknown action "align-right" Warning: requested data for unknown action "align-top" Warning: requested data for unknown action "align-centerv" Warning: requested data for unknown action "align-bottom" Warning: requested data for unknown action "escape-all" Warning: requested data for unknown action "escape-horizontal" Warning: requested data for unknown action "escape-vertical" Warning: requested data for unknown action "escape-left" Warning: requested data for unknown action "escape-right" Warning: requested data for unknown action "escape-up" Warning: requested data for unknown action "escape-down" QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Empty filename passed to function inotify_add_watch(/) failed: (Permission denied) Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation inotify_add_watch(/storage/emulated) failed: (Permission denied) Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Log viewer on krita 5, desktop ============================== Warning: requested data for unknown action "toggle-edit-mode" Warning: requested data for unknown action "align-relative" Warning: requested data for unknown action "align-left" Warning: requested data for unknown action "align-centerh" Warning: requested data for unknown action "align-right" Warning: requested data for unknown action "align-top" Warning: requested data for unknown action "align-centerv" Warning: requested data for unknown action "align-bottom" Warning: requested data for unknown action "escape-all" Warning: requested data for unknown action "escape-horizontal" Warning: requested data for unknown action "escape-vertical" Warning: requested data for unknown action "escape-left" Warning: requested data for unknown action "escape-right" Warning: requested data for unknown action "escape-up" Warning: requested data for unknown action "escape-down" QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 QFont::setPointSizeF: Point size <= 0 (-0.900000), must be greater than 0 Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Empty filename passed to function inotify_add_watch(/) failed: (Permission denied) Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation inotify_add_watch(/storage/emulated) failed: (Permission denied) Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation Case insensitive sorting unsupported in the posix collation implementation Numeric mode unsupported in the posix collation implementation
Ack, I mean for the last one: KisResourceModel::resetQuery for "brushes" took 13 ms KisResourceModel::resetQuery for "gamutmasks" took 1 ms KisResourceModel::resetQuery for "gradients" took 3 ms KisResourceModel::resetQuery for "layerstyles" took 0 ms KisResourceModel::resetQuery for "paintoppresets" took 39 ms KisResourceModel::resetQuery for "palettes" took 6 ms KisResourceModel::resetQuery for "patterns" took 40 ms KisResourceModel::resetQuery for "preset" took 0 ms KisResourceModel::resetQuery for "sessions" took 0 ms KisResourceModel::resetQuery for "symbols" took 1 ms KisResourceModel::resetQuery for "tasksets" took 1 ms KisResourceModel::resetQuery for "windowlayouts" took 1 ms KisResourceModel::resetQuery for "workspaces" took 3 ms KisStorageModel::resetQuery took 0 ms >>>> loadPalettes QVector() SET PALETTE LIST 0 storage [RESOURCESTORAGE] Name: "{92d02fdd-a26e-4963-946d-a2bac3c84a23}" Version: "{92d02fdd-a26e-4963-946d-a2bac3c84a23}" Valid: true Storage: "Memory" Timestamp: QDateTime(2020-06-01 10:51:30.087 CEST Qt::LocalTime) Warning: requested data for unknown action "toggle-edit-mode" Warning: requested data for unknown action "align-relative" Warning: requested data for unknown action "align-left" Warning: requested data for unknown action "align-centerh" Warning: requested data for unknown action "align-right" Warning: requested data for unknown action "align-top" Warning: requested data for unknown action "align-centerv" Warning: requested data for unknown action "align-bottom" Warning: requested data for unknown action "escape-all" Warning: requested data for unknown action "escape-horizontal" Warning: requested data for unknown action "escape-vertical" Warning: requested data for unknown action "escape-left" Warning: requested data for unknown action "escape-right" Warning: requested data for unknown action "escape-up" Warning: requested data for unknown action "escape-down" resourceByName "Default" resourceByName "Default" resourceByName "Default" resourceByName "Default" resourceByName "b)_Basic-5_Size_Opacity"
I can confirm this bug on krita/4.3 branch, Android 10. I have also observed following behavior, which may be associated with this bug: A. embedded reference images are not shown on android B. data from vector layers created on android are missing from the kra files Ad B. Steps to reproduce: 1. Create a document with a vector layer on android. 2. Draw something on the vector layer. Newly created shapes are visible. 3. Save and close the document. 4. Upon reopening the document, the vector shapes are gone. The resulting kra file lists the vector layer in the maindoc.xml, but the directory with the content.svg is missing completely. The preview, however, shows the vector shapes. I'm attaching example files.
Created attachment 128980 [details] test file from desktop version
Created attachment 128981 [details] test file from android version
That's starting to sound like this bug is in the saving and loading code. Krita on android is capable of making vector objects, but not of saving and loading them? I wonder what could be messing that up, as other XML parts of the kra format do not seem to be affected? Maybe we should try to load each savable feature one-by-one to see if this extends to other items?
It might help to open the log docker and enable the file handling debug area and see if it throws up something interesting.
Erp, for some reason my logs didn't save when I was trying to copy them to the disk (I think android doesn't like the : in the savefilename), but it seems as if the save/load is SKIPPING over the shape file contents almost entirely. As in, detailed information about the raster layers, but no information whatsoever about the vector layers when loading and only a single line when saving.
Created attachment 129020 [details] logfile for saving and loading vectors. So, I tried again, 'layer 3' is the shape layer in both cases, with the first part saving and the second part loading(second part is from a separate file saved with krita desktop). For reference, for the loading part, on the same file, krita desktop gives: ---------------------------------------------- 11 ("mimetype", "maindoc.xml", "documentinfo.xml", "preview.png", "Unnamed/layers/layer2", "Unnamed/layers/layer2.defaultpixel", "Unnamed/layers/layer2.icc", "Unnamed/layers/layer3.shapelayer/content.svg", "Unnamed/annotations/icc", "Unnamed/annotations/proofing/icc", "mergedimage.png") KOStore "root" "maindoc.xml" Opening for reading "maindoc.xml" No attribute color space for layer: "page_margin_and_bleeds" Searching color space: "RGBA" "RGBA" "U8" for layer: "sketch" found colorspace "RGB/Alpha (8-bit integer/channel)" ("RGBA","U8" ) KOStore "documentinfo.xml" "documentinfo.xml" Opening for reading "documentinfo.xml" KOStore "Unnamed/annotations/icc" "Unnamed/annotations/icc" Opening for reading "Unnamed/annotations/icc" KOStore "Unnamed/annotations/proofing/icc" "Unnamed/annotations/proofing/icc" Opening for reading "Unnamed/annotations/proofing/icc" going to load "xmp" , "XMP" from "Unnamed/layers/.xmp.metadata" going to load "xmp" , "XMP" from "Unnamed/layers/layer3.xmp.metadata" KOStore "content.svg" "Unnamed/layers/layer3.shapelayer/content.svg" Opening for reading "Unnamed/layers/layer3.shapelayer/content.svg" KOStore "Unnamed/layers/layer2.defaultpixel" "Unnamed/layers/layer2.defaultpixel" Opening for reading "Unnamed/layers/layer2.defaultpixel" KOStore "Unnamed/layers/layer2" "Unnamed/layers/layer2" Opening for reading "Unnamed/layers/layer2" KOStore "Unnamed/layers/layer2.icc" "Unnamed/layers/layer2.icc" Opening for reading "Unnamed/layers/layer2.icc" Data to load: 9080 from "Unnamed/layers/layer2.icc" with color space "RGBA" Profile size: 9080 true 0 9080 going to load "xmp" , "XMP" from "Unnamed/layers/layer2.xmp.metadata" >>>> loadPalettes QVector() SET PALETTE LIST 0 storage [RESOURCESTORAGE] Name: "{1052c48d-cec9-4f72-b8be-8c15a21283cb}" Version: "{1052c48d-cec9-4f72-b8be-8c15a21283cb}" Valid: true Storage: "Memory" Timestamp: QDateTime(2020-06-03 12:43:39.477 CEST Qt::LocalTime) resourceByName "Default" 4 ("mimetype", "colorset.xml", "sRGB-elle-V2-srgbtrc.icc", "profiles.xml") KOStore "profiles.xml" "profiles.xml" Opening for reading "profiles.xml" KOStore "colorset.xml" "colorset.xml" Opening for reading "colorset.xml" 4 ("mimetype", "colorset.xml", "sRGB-elle-V2-srgbtrc.icc", "profiles.xml") KOStore "profiles.xml" "profiles.xml" Opening for reading "profiles.xml" KOStore "colorset.xml" "colorset.xml" Opening for reading "colorset.xml"
hey, if android doesn't like ':', do you think the problem is opening a path named layer3.shapelayer inside the zip file? So, that android doesn't like opening filepaths inside zip files with a period in them?
Git commit b9fb413010e3bd5841a6afe3c1cf47af3d206d4e by Sharaf Zaman. Committed on 23/09/2020 at 11:17. Pushed by szaman into branch 'krita/4.3'. Bugfix: Vector/references don't get rendered KisExternalLayer had no key function, so the typeinfo was emitted as a weak symbol. So, it may not always be possible to merge the typeinfo with shared libraries, correctly. This would make dynamic_cast fail (because it depends on RTTI in this case). src: https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#rtti_exceptions-not-working-across-library-boundaries M +1 -0 libs/image/CMakeLists.txt A +24 -0 libs/image/kis_external_layer_iface.cc [License: GPL (v2+)] M +2 -3 libs/image/kis_external_layer_iface.h https://invent.kde.org/graphics/krita/commit/b9fb413010e3bd5841a6afe3c1cf47af3d206d4e
Git commit b83bcf7d7b32c563fab395181a67d1f78a6f133a by Sharaf Zaman. Committed on 24/09/2020 at 06:00. Pushed by szaman into branch 'master'. Bugfix: Vector/references don't get rendered KisExternalLayer had no key function, so the typeinfo was emitted as a weak symbol. So, it may not always be possible to merge the typeinfo with shared libraries, correctly. This would make dynamic_cast fail (because it depends on RTTI in this case). src: https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#rtti_exceptions-not-working-across-library-boundaries (cherry picked from commit b9fb413010e3bd5841a6afe3c1cf47af3d206d4e) M +1 -0 libs/image/CMakeLists.txt A +24 -0 libs/image/kis_external_layer_iface.cc [License: GPL (v2+)] M +2 -3 libs/image/kis_external_layer_iface.h https://invent.kde.org/graphics/krita/commit/b83bcf7d7b32c563fab395181a67d1f78a6f133a
Git commit fb2d5eb4c49175812ac99f5944ad3b7b22d35eb3 by Sharaf Zaman. Committed on 24/09/2020 at 06:02. Pushed by szaman into branch 'krita/4.4.0'. Bugfix: Vector/references don't get rendered KisExternalLayer had no key function, so the typeinfo was emitted as a weak symbol. So, it may not always be possible to merge the typeinfo with shared libraries, correctly. This would make dynamic_cast fail (because it depends on RTTI in this case). src: https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#rtti_exceptions-not-working-across-library-boundaries (cherry picked from commit b9fb413010e3bd5841a6afe3c1cf47af3d206d4e) M +1 -0 libs/image/CMakeLists.txt A +24 -0 libs/image/kis_external_layer_iface.cc [License: GPL (v2+)] M +2 -3 libs/image/kis_external_layer_iface.h https://invent.kde.org/graphics/krita/commit/fb2d5eb4c49175812ac99f5944ad3b7b22d35eb3