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.
Setting the recognition threshold for the pinch gesture using the
PinchManipulator::setScaleRecognitionThreshold
andPinchManipulator::setRotationRecognitionThreshold
functions does not work.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:
Press F8 to exit the Preview.
In the Prefab Placeholder 3D node set the prefab to the correct prefab.
Press F5 to start the Preview.
Known issues in Kanzi Studio¶
Kanzi installer fails to install VC++ 2017 x64 redistributable if you have already installed it on top of VC++ 2015 x64 or x86 redistributable.
Workaround: Manually run the VC++ 2017 x64 redistributable installer and select to the option to repair the installation. The easiest way to do this is to run the Add or Remove Programs, click modify next to the VC++ 2017 x64 redistributable, and then repair.
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:
In the Library > Resource Files > 3D Assets select the fbx file that caused Kanzi Studio to terminate.
In the Properties disable the Convert Pivot Points property.
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.
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.
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.
OpenGL ES (IMG) graphics API is not stable enough to be used for development. Use the IMG graphics API only for testing. For content development use the OpenGL. Set the Default Preview OpenGL ES Wrapper in the Edit > User Preferences > Advanced > Default Preview OpenGL ES Wrapper.
When you run Kanzi Studio in Parallels or VMWare Fusion, the IMG Preview OpenGL ES Wrapper does not work because of a bug in the IMG wrapper.
Workaround: Use the GL wrapper.
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:
File > Export > Export KZB.
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
setsandroid.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.
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 QNX 7.0.0 and update your QNX software through the QNX Software Center, the compilation of Kanzi applications fails with error
Kanzi-3_6_5-qnx700_screen_aarch64-es3-freetype-static/Engine/include/kanzi/core/cpp/cstdio.hpp:42:12: error: 'std::snprintf' has not been declared
QNX introduced this error in an update of their software development platform where the
std::snprintf
is missing in header files.Workaround: To remove the compilation error, add to the preprocessor flags the
-DKZ_USE_C99_SNPRINTF
definition.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
, theGetOption("build-dynamic-libs")
function call always returnsfalse
.Workaround: In the
<ProjectName>/Application/configs/platforms/common/config.py
file:Remove the redundant
m.type = "a"
statement.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.