[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