[Interest] Skybox Qt Quick3D bad performance in Android
joao morgado
joaodeusmorgado at yahoo.com
Sat Jul 31 03:52:22 CEST 2021
I'm testing Quick3D on Android, all good, but if I use a skybox the performance is really bad or does not work at all.
The following test project with trivial code is just a skybox and a red cilinder.
SkyBoxTest.zip
|
|
| |
SkyBoxTest.zip
|
|
|
Runs fine in desktop linux mint, windows, MacOS, iPhone, but in my 2 android devices:
- tablet Lenovo Tab M10 TB-X306F, OS Android 11, when I run the program, I get a black screen, it takes 55 seconds to load the image of the skybox and the red cylinder
- mobile nokia 5.4 OS Android 10: compilation fails with the following errors:
---------------------------------------------------------------------------------------------------------------E VpsExtension: Failed to get binder for service "vendor.vpsservice"E VpsExtension: Failed to get binder for service "vendor.vpsservice"I AdrenoGLES-0: ERROR: 0:2: '' : GLSL error: extension 'GL_EXT_shader_texture_lod' is not supportedI AdrenoGLES-0: ERROR: 0:77: 'textureCubeLodEXT' : no matching overloaded function foundI AdrenoGLES-0: ERROR: 0:77: 'xyz' : field selection requires structure, vector, or matrix on left hand sideI AdrenoGLES-0: ERROR: 0:77: 'return' : function return is not matching type:I AdrenoGLES-0: ERROR: 4 compilation errors. No code generated.07-31 02:35:03.170 24150 24253 I AdrenoGLES-0:W libSkyBoxTest_arm64-v8a.so: Failed to compile shader: ERROR: 0:2: '' : GLSL error: extension 'GL_EXT_shader_texture_lod' is not supportedW libSkyBoxTest_arm64-v8a.so: ERROR: 0:77: 'textureCubeLodEXT' : no matching overloaded function foundW libSkyBoxTest_arm64-v8a.so: ERROR: 0:77: 'xyz' : field selection requires structure, vector, or matrix on left hand sideW libSkyBoxTest_arm64-v8a.so: ERROR: 0:77: 'return' : function return is not matching type:W libSkyBoxTest_arm64-v8a.so: ERROR: 4 compilation errors. No code generated.07-31 02:35:03.170 24150 24253 W libSkyBoxTest_arm64-v8a.so:07-31 02:35:03.170 24150 24253 W libSkyBoxTest_arm64-v8a.so:W libSkyBoxTest_arm64-v8a.so: Source was:W libSkyBoxTest_arm64-v8a.so: #version 100W libSkyBoxTest_arm64-v8a.so: #extension GL_EXT_shader_texture_lod : requireW libSkyBoxTest_arm64-v8a.so: precision highp float;W libSkyBoxTest_arm64-v8a.so: precision highp int;07-31 02:35:03.170 24150 24253 W libSkyBoxTest_arm64-v8a.so:W libSkyBoxTest_arm64-v8a.so: struct LightSourceW libSkyBoxTest_arm64-v8a.so: {W libSkyBoxTest_arm64-v8a.so: vec4 position;W libSkyBoxTest_arm64-v8a.so: vec4 direction;W libSkyBoxTest_arm64-v8a.so: vec4 diffuse;W libSkyBoxTest_arm64-v8a.so: vec4 specular;W libSkyBoxTest_arm64-v8a.so: float coneAngle;W libSkyBoxTest_arm64-v8a.so: float innerConeAngle;W libSkyBoxTest_arm64-v8a.so: float constantAttenuation;W libSkyBoxTest_arm64-v8a.so: float linearAttenuation;W libSkyBoxTest_arm64-v8a.so: float quadraticAttenuation;W libSkyBoxTest_arm64-v8a.so: };07-31 02:35:03.170 24150 24253 W libSkyBoxTest_arm64-v8a.so:W libSkyBoxTest_arm64-v8a.so: struct cbMainW libSkyBoxTest_arm64-v8a.so: {W libSkyBoxTest_arm64-v8a.so: vec3 qt_cameraPosition;W libSkyBoxTest_arm64-v8a.so: vec4 qt_lightProbeProperties;W libSkyBoxTest_arm64-v8a.so: vec3 qt_light_ambient_total;W libSkyBoxTest_arm64-v8a.so: vec4 qt_material_base_color;W libSkyBoxTest_arm64-v8a.so: vec3 qt_material_emissive_color;W libSkyBoxTest_arm64-v8a.so: vec4 qt_material_properties;W libSkyBoxTest_arm64-v8a.so: vec4 qt_material_properties2;W libSkyBoxTest_arm64-v8a.so: vec4 qt_material_W libSkyBoxTest_arm64-v8a.so: Failed to build graphics pipeline state------------------------------------------------------------------------------------------------------------
It seems that skybox uses an extension that is not available in nokia 5.4 GPU or software.I will report a bug, but before that, maybe someone wants to give theirs 2 cents ?
The code is
Window { visible: true width: 640 height: 480 title: qsTr("Hello World")
View3D { id: view3D visible: true width: parent.width height: parent.height
//SkyBox mode environment: SceneEnvironment { backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "qrc:/galaxy.hdr" mappingMode: Texture.LightProbe } }
// color mode /*environment: SceneEnvironment { backgroundMode: SceneEnvironment.Color clearColor: "skyblue" }*/
//! [camera] PerspectiveCamera { id: cam position: Qt.vector3d(0, 0, 500) } //! [camera]
DirectionalLight { eulerRotation.x: -45 }
Model { id: ball //source: "#Cylinder" source: "#Cylinder" scale: Qt.vector3d(1, 1, 1) materials: [ DefaultMaterial { diffuseColor: "red" } ] position: Qt.vector3d(-100, -150, 0) onPositionChanged: console.log(position) } }}
CheersJoão
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210731/e07b7486/attachment.html>
More information about the Interest
mailing list