google / google/filament

ios 15.5 safari render failed

Open
#7,216 0 comments 0 reactions 1 assignee Claimed by @bejado View on GitHub
macos web
Dominant language
C++
Stars
20.5k
Forks
2.3k
Avg merge
2d 16h
Merged PRs (30d)
74

Description

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

**Describe the bug**
1, we use filament(version updated Mon Mar 21 11:36:43 2022, commit 101a59138c5f82fe50e63dca74a390fc51233a93) render on website, we test our unlit model(model has skin and morph) render well on android chrome, windows chrome, but failed on a ipad safari
(ios 15.5
webgl2.0,
opengles 3.0
GL_MAX_DRAW_BUFFERS = 4
GL_MAX_RENDERBUFFER_SIZE = 16384
GL_MAX_SAMPLES = 4
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 16.000000
GL_MAX_UNIFORM_BLOCK_SIZE = 16384
GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 16),
but on higher version iphone or ipad, the safari also render ok.
on the failed ipad, I find the error report is GL_INVALID_OPERATION when call the function " glDrawRangeElements(GLenum(rp->type), rp->minIndex, rp->maxIndex, rp->count, rp->gl.indicesType, reinterpret_cast(rp->offset));", but I also find some glb model(model without skin and morph ) render ok on this ipad, so I guess something wrong in vertex shader about skin or moph.
then I test in following(use the glb model with skin and morph on the failed ipad):
1, I annotate the skin method like this:

1.1 before modify:
![image](https://github.com/google/filament/assets/5959808/23dbef84-07e6-4d1e-8960-b86e2f998885)
1.2 after modify
![image](https://github.com/google/filament/assets/5959808/4b840a6d-56a7-428b-b4a5-17d7d1f3092d)
Test result is : render ok

then I recover the skin method, and annotate the morph method like this:
2.1 before modify:
![image](https://github.com/google/filament/assets/5959808/048e1e65-8cf0-4e3f-b502-f53a54e6ece6)
2.2 after modify:
![image](https://github.com/google/filament/assets/5959808/b71198f0-be2e-49ce-90a6-04c400cbc893)
the test result is: render ok

I modify above all in getters.vs , I also know when I modify the skin or morph in vertex shader, the compiler will optimize the shader code(means the sampler2DArray morphTargetBuffer_positions will never used ), but I
really not know why it render failed when turn on skin and morph method. is there some resource limit ?
here is my test glb model (a model with skin and morph), please help

[test.zip](https://github.com/google/filament/files/12747635/test.zip)

**Desktop (please complete the following information):**
- OS: ipad ios 15.5 safari webgl2.0,opengles 3.0
- Backend: [OpenGLES]

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.