Known issues

Known issues in Kanzi Engine

  • Some parts of Kanzi API are written in C. In the future Kanzi releases we will continue the effort of converting the API to C++.

  • When linking applications to the libraries provided with SDK without sources generates warning about missing debug information.

  • Clipping of rotated child 2D nodes is ignored because of performance reasons. For example, if an Image node has a child Image node, and you rotate the child Image node, the parent Image node does not clip the child Image node.

  • Current limitation of the Kanzi Engine is that if a 2D node is forced to render to a render target (for example, Viewport 2D with rotation), clipping is applied even when you disable clipping in a 2D node.

  • When you change the Samples property of a Render Target Texture you have to restart the Preview to apply the change.

  • When the glyph cache texture in Kanzi Studio is full, the application performance decreases in Kanzi Studio. This does not affect the performance of your Kanzi application when you build it and appropriately adjust the size of the glyph cache texture for your target platform. See Glyph cache texture size.

  • The Node2D_plugin example prints warnings when you run it in the Preview.

  • Kanzi application freezes when user scrolls a Trajectory List Box 3D with negative item spacing absolute value of which is higher than the width of list box items.

  • When you create a Prefab Placeholder 3D node, in some cases Kanzi selects a prefab that it cannot instantiate. This can cause undefined behavior and the Preview to show incorrect content.

    Workaround:

    1. Press F8 to exit the Preview.

    2. In the Prefab Placeholder 3D node set the prefab to the correct prefab.

    3. Press F5 to start the Preview.

Known issues in Kanzi Studio

  • Kanzi Studio may fail to launch on virtual machines and periodically on desktop Windows installations, reporting an unhandled exception error.

    The Windows Event Log and/or Kanzi Studio Logs will contain an entry similar to this:

    Unhandled exception: System.InvalidProgramException: Common Language Runtime detected an invalid program.
      at Rightware.Kanzi.Tool.ApplicationCommon.EnvironmentInitializer.***********(IEnumerable1  , Boolean  )
    

    Workaround: Restart Windows or the virtual machine.

  • When importing kzm files, Kanzi Studio is unable to load kzm files from subdirectories.

    Workaround: In File Explorer, copy each kzm file into the root directory of its resource type. For example, copy a material from the Project1/Materials/subdirectory/ to the Project2/Materials/ directory.

  • When using the kzm file format, Kanzi Studio does not preserve build configurations if they are stored under Library > Applications > Build Configuration. This means that build configurations under the Applications folder will not appear or be usable after converting your project to kzm format, saving, and reopening the project.

    Workaround:

    1. After converting your project to kzm format, save and close the project.

    2. In File Explorer, rename the <ProjectName>/Tool_project/Applications folder to Build Configurations.

    3. In the <ProjectName>.proj.kzm file, update all references from Applications to Build Configurations. Under ApplicationConfigurationResourceFileDirectory:

      • Change RelativePath: Applications to RelativePath: Build Configurations

      • Change Name: Applications to Name: Build Configurations

    Note

    This issue only affects projects that still use the older Library > Applications > Build Configuration structure to store the build configuration.

    The following tutorials are also affected:

    • Programmer Tutorial: Start and Completed

    • Data Source: Start

    • Drag and Drop: Start

    Newer projects created with the Library > Build Configurations > Build Configuration structure are not affected.

  • The Skybox asset from Factory Content does not work.

    Workaround: A skybox can be manually implemented. One method is to use a large inside out Box or Sphere that encompases the scene, and use a material similar to FragmentPhongCubeMaterial.

  • When you import the same dds file twice, Kanzi Studio creates an invalid texture and shows invalid content in the Image property dropdown menus.

    Workaround: Update the file in File Explorer, or delete the dds file and its texture before importing them again.

  • The device driver for the AMD Radeon R9 M370X included in the Boot Camp update 6.0 causes the Preview to not work. To fix the issue, use the Windows Device Manager to roll back to the previous version of the driver.

  • Importing fbx files which contain animations that use custom pivot points, can cause Kanzi Studio to terminate. This is caused by a defect in the FBX importer provided in the Autodesk’s FBX SDK.

    After the import fails, open the Kanzi Studio project:

    1. In the Library > Resource Files > 3D Assets select the fbx file that caused Kanzi Studio to terminate.

    2. In the Properties disable the Convert Pivot Points property.

      ../_images/disable-convert-pivot-points.png
      • When disabled, Kanzi Studio ignores the custom pivot points in the fbx file, which can affect the rotation and scale animations for nodes that use custom pivot points.

      • When enabled, Kanzi Studio resets the pivot points to the default positions without making visual changes to animations. This is the recommended setting because Kanzi Studio does not support custom pivot points.

      • Custom pivot points contain an additional transform which Kanzi Studio bakes into a single transform. In some cases, custom pivot points do not contain any data, so disabling this option does not affect the content.

    3. In the Library > Resource Files > 3D Assets right-click the fbx file that caused Kanzi Studio to terminate, and select Import 3D Asset File to import the file.

      ../_images/import-3d-asset-file.png
  • Kanzi Studio does not support importing of animated pivot points.

  • Kanzi Studio does not support these glTF 2.0 features:

    • Double-sided materials

    • Point and line primitives

    • Samplers with differing wrap modes for S and T dimensions. Kanzi Studio uses the wrap mode for S dimension for both.

  • Kanzi Studio is compatible only with screen DPI settings set to 100%.

  • When you close the Node Tree window, the selection in the window does not update correctly.

  • Thumbnails are not rendered correctly for all assets.

  • Copy-pasting in the Node Tree a Scene prefab that contains a skinned mesh does not work.

    Workaround: Drag and drop the Scene prefab from the Prefabs to the location in your project where you want to use it.

  • When you reload the changes from a referenced Kanzi Studio project that is opened in another instance of Kanzi Studio, Kanzi Studio can become unstable.

    Workaround: Close the referenced project before you reload the changes in the project where the project is referenced.

  • When a node contains multiple instances of the same prefab, you cannot create a binding from the node that contains these prefabs to the properties of nodes inside an instance of that prefab.

    Workaround: Make the properties to which you want to bind available in the root of the prefab and create the bindings in the root of the prefab instance. See Customizing instances of a node prefab.

  • When you change the value of the Prefab Template property of a Prefab View, Kanzi fails to show the default values of the properties of the prefab template. This happens when you change the value of the property in any other way than by setting it in the Properties, such as when you use a state manager or application code. The same issue occurs when you change the value of the Render Pass Prefab property in a Render Pass View.

    Workaround: In Kanzi Studio add to the Prefab View or Render Pass View the properties of each prefab template or render pass prefab that you set the Prefab View or Render Pass View to use.

  • Kanzi Studio does not support setting the Mesh Material property of a primitive mesh to a material from a referenced project.

    Workaround: Use the Material (Model3D.Material) property to set the material. The value of the Material property overrides the value of the Mesh Material property.

  • When you disable or delete a to-source binding, the Preview does not show the result of the disabling or deleting.

    Workaround: To see the result, restart the Preview.

  • When you deploy from Kanzi Studio to an Android device a project that uses the Kanzi Studio project template, and Code Behind functionality, the deployed application terminates on the Android device soon after it opens.

    Workaround: To deploy such applications, use Android Studio instead of Kanzi Studio.

  • When you deploy from Kanzi Studio to an Android device an application, which loads kzb files listed in the <project_name>.kzb.cfg file, the application terminates because of failing to load the kzb files.

    Workaround:

    In Kanzi Studio first export the kzb files, then build and deploy the Android Package:

    1. File > Export > Export KZB.

    2. File > Export > Build Android Package.

  • After you rename a Kanzi Studio project, Kanzi Studio treats already existing Code Behind projects like a regular Kanzi Engine Plugin. This means that you cannot open such Code Behind projects using the Activity Browser and starting or restarting the Preview does not automatically start the rebuilding of such Code Behind projects.

    Workaround: To build a Code Behind project, manually open and build the Code Behind project in Visual Studio, and restart the Kanzi Studio Preview.

  • If you uninstalled NDK 21.1.6352462, the application for the Tutorial: Data sources for Android does not build from Kanzi Studio when you select File > Export > Build Android Package. In Kanzi Studio, the Log window shows this error:

    FAILURE: Build failed with an exception.
    * What went wrong:
    A problem occurred configuring project ':app'.
    > NDK at C:\Users\<User>\AppData\Local\Android\Sdk\ndk\21.1.6352462 did not have a source.properties file
    

    This is an issue in the Android Gradle Plugin version 4.1.3 that erroneously defaults to NDK 21.1.6352462 even when app/build.gradle sets android.ndkVersion to 21.3.6528147.

    Workaround: To build the tutorial application, remove the C:/Users/<User>/AppData/Local/Android/Sdk/ndk/21.1.6352462 directory and run build the application from Kanzi Studio. During the build, Gradle downloads NDK 21.1.6352462, installs it, and uses it to build the tutorial application.

  • Some of the tutorials depend on the XML_data_source plugin. Now that the examples and tutorials are not part of the installer, compilation of the project may fail. Workaround: The dependencies can be provided by downloading the Data sources tutorial first. The Get the tutorial step of the affected tutorials now includes this step.

  • Overwriting existing Kanzi project functionality does not work correctly with the kzm file format.

  • When you take a screenshot of the Preview, the selection outline can completely cover the selected nodes.

    Workaround: Before you take the screenshot, either disable the selection outline feature, or deselect the nodes to remove the outline from the Preview.

Known issues in the Kanzi SDK

  • The Coin example does not run on the x86/x86_64 Android emulator.

Known issues on platforms

  • The standalone android-freetype and android-freetype-itype platform packages contain an unnecessary header file: Engine/libraries/platforms/android-r21d-aarch64/opengl_es_2_0/include/EGL/eglplatform.h.

  • QNX deprecated the use of QCC as CXX compiler. The compilation of a QNX application fails with the error

    QCC is not a full path and was not found in the PATH.
    

    For workaround, see Known issues on QNX.

  • When you use SCons with the --dynamic flag to build your Kanzi application with dynamically linked libraries, you can get statically linked libraries instead. This happens because in <ProjectName>/Application/configs/platforms/common/config.py, the GetOption("build-dynamic-libs") function call always returns false.

    Workaround: In the <ProjectName>/Application/configs/platforms/common/config.py file:

    1. Remove the redundant m.type = "a" statement.

    2. Remove the if statement with the GetOption("build-dynamic-libs") function call and outdent the code block that was under the if statement.

    Replace:

    m.type = "a"
    ...
    if GetOption("build-dynamic-libs"):
        m.type = "so"
        m.env["SHLINKFLAGS"] += ["-shared"]
        m.env["SHLINKFLAGS"] += ["-Wl,-soname,<LibraryName>.so"]
    

    with

    m.type = "so"
    m.env["SHLINKFLAGS"] += ["-shared"]
    m.env["SHLINKFLAGS"] += ["-Wl,-soname,<LibraryName>.so"]
    

    After you make this change, you can build your application only with dynamically linked libraries. To build your application with the statically linked libraries, revert the change that you made.

  • Wayland input events do not wake up the main loop from the idle state.

    Workaround: In the application configuration, disable the application idle state. See ApplicationIdleState.

  • On the QNX platform, these window format values are hardcoded:

    • Buffer size to 24

    • Alpha size to 0

    • Padding size to 8

  • These graphics outputs do not support kzgfx:

    • QnxStream

    • QnxEGLPbuffer

See also

Release notes and migration guides