google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
https://google.github.io/filament/
Apache License 2.0
17.43k stars 1.84k forks source link

separableGaussianBlur.mat Link error on Android when using OpenGL backend #7529

Closed iRusher closed 6 months ago

iRusher commented 6 months ago

⚠️ Issues not using this template will be systematically closed.

Describe the bug I run Android sample sample-gltf-viewer, and add a simple glb model cube2.glb.zip. And crashed at link program.

It may be caused some kind of materials. Here is material params in glb file.

"materials": [
    {
      "doubleSided": true,
      "extensions": {
        "KHR_materials_specular": {
          "specularColorFactor": [
            1.6599503018401929,
            1.6599503018401929,
            1.6599503018401929
          ]
        },
        "KHR_materials_ior": {
          "ior": 1.4500000476837158
        }
      },
      "name": "xxx.003",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.7454032897949219,
          0.7835370898246765,
          1,
          1
        ],
        "metallicFactor": 0.10000000149011612,
        "roughnessFactor": 0.4000000059604645
      }
    },
    {
      "doubleSided": true,
      "name": "xxx",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.009721201844513416,
          0.00972120650112629,
          0.021219011396169662,
          1
        ],
        "metallicFactor": 0,
        "roughnessFactor": 0.5
      }
    }
  ],

Screenshots image

Logs

2024-01-26 16:54:33.578  9379-9840  Filament                com.google.android.filament.gltf     E  Link error in "separableGaussianBlur":
                                                                                                    "(null)"
2024-01-26 16:54:33.578  9379-9840  Filament                com.google.android.filament.gltf     E  in void utils::panic(const char *, const char *, int, const char *):32
                                                                                                    in file /Users/xxx/work/ff/libs/utils/src/debug.cpp
                                                                                                    reason: /Users/xxx/work/ff/filament/backend/src/opengl/ShaderCompilerService.cpp:462: failed assertion `program'

Smartphone (please complete the following information):

Filament info & GLES info

    Filament       I  FEngine (64 bits) created at 0xb400007149585000 (threading is enabled)
    Filament       I  FEngine resolved backend: OpenGL
    AdrenoGLES-0   I  QUALCOMM build                   : 17600bcd45, I98eb9ea3b4
                      Build Date                       : 02/24/23
                      OpenGL ES Shader Compiler Version: E031.41.03.28
                      Local Branch                     : 
                      Remote Branch                    : 
                      Remote Branch                    : 
                      Reconstruct Branch               : 
    AdrenoGLES-0   I  Build Config                     : S P 14.1.4 AArch64
    AdrenoGLES-0   I  Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
    AdrenoGLES-0   I  Driver Version                   : 0676.17
    AdrenoGLES-0   I  PFP: 0x01740158, ME: 0x00000000
    AdrenoUtils    I  <ReadGpuID:408>: Reading chip ID through GSL
    Filament       I  OS version: 33
    Filament       I  Backend feature level: 2
    Filament       I  FEngine feature level: 1
    Filament       I  Texture Decoder has 6 background threads.
pixelflinger commented 6 months ago

I am not able to reproduce this problem. Can you provide more information? Is it happening consistently? Did you try with the emulator, is it happening there too? Are you able to try with another device?

pixelflinger commented 6 months ago

this is in fact a duplicate of #6872

iRusher commented 6 months ago

It only occurs on one phone. It works fine on other Android phone.