secondlife / viewer

🖥️ Second Life's official client
GNU Lesser General Public License v2.1
212 stars 53 forks source link

Increase joint limit for GLTF Scenes #1530

Open RunitaiLinden opened 6 months ago

RunitaiLinden commented 6 months ago

Currently the shaders only support a joint limit of 110 joints, but many GLTF scenes require hundreds of joints.

Remove the joint limit entirely (the spec does not allow for a joint limit).

AtlasLinden commented 4 months ago

Currently hitting the following crash when attempting to upload a model with over 100 joints https://github.com/secondlife/viewer/issues/2042

Setting the Milestone from 2024.06-atlasaurus to Develop so it can be tested in a future build.

dmytrohproductengine commented 1 month ago

Deferred QA.

Verified on the Second Life Release 7.1.11.10947335521 (64bit) on Win10/OSX in the scope of https://github.com/secondlife/iqa/issues/348.

Need more info.

Could you provide a test plan and a model to upload, please?

AtlasLinden commented 1 month ago

Created a somewhat unorthodox model here: https://drive.google.com/file/d/1WR87RsO4N94OYAvdSeAbdKdJ3DIrFV9o/view?usp=drive_link Test: that the model does indeed upload and appear correctly. Please ignore the wild animations it may show.

dmytrohproductengine commented 1 month ago

Hello, @AtlasLinden. Thank you for providing more information.

The link "https://drive.google.com/file/d/1WR87RsO4N94OYAvdSeAbdKdJ3DIrFV9o/view?usp=drive_link" directs to upload a GLTF material format file "SnakeAnimation+100joints.glb", which contain is empty (see "iqa#348.png").

Could you please provide a correct GLTF file to upload (glb file) and a model with over 100 joints (dae file)?

Thank you.

iqa#348.png iqa#348

AtlasLinden commented 1 month ago

Hi @dmytrohproductengine, I've realised I should've included more information. This issue is in relation to the GLTF upload feature that is currently located in the Develop menu. .GLB files can be uploaded via Develop>GLTF>Open while a prim is selected. What you had uploaded is just the material of the model which is in fact blank as I didn't add any textures to it.

Note: Uploading the above model on DeltaFPS or ExtraFPS still causes the viewer to crash. https://github.com/secondlife/viewer/issues/2042 has not yet been fixed so moving this back to the Develop milestone for now. @dmytrohproductengine please defer testing this issue in https://github.com/secondlife/iqa/issues/348.

dmytrohproductengine commented 1 month ago

Hi @AtlasLinden. Thank you very much for the clarification!

When the prime was selected, I tried to upload the glb file via "Develop"→"GLTF"→"Open...". The viewer is crashed, but the call stack is different from what is pointed out in secondlife/viewer/issues/2042.

The call stacks of the new crashes on Win10 and OSX are almost similar:

Win10 Crash: secondlife/viewer/issues/2676 Callstack: SecondLifeViewer!LLGLSLShader::bind(1053) Link: https://app.bugsplat.com/v2/keycrash?database=SecondLife_Viewer_2018&stackKeyId=96381

OSX Crash: secondlife/viewer/issues/2677 Callstack: Second Life Release!LLGLSLShader::bind()(1053) Link: https://app.bugsplat.com/v2/keycrash?database=SecondLife_Viewer_2018&stackKeyId=96401

dmytrohproductengine commented 1 month ago

Deferred QA.

Verified on the Second Life Release 7.1.11.10947335521 (64bit) on Win10/OSX in the scope of https://github.com/secondlife/iqa/issues/348.

The viewer is crashed after uploading the glb file with over 100 joints via "Develop"→"GLTF"→"Open...".

Win10: secondlife/viewer/issues/2676 OSX: secondlife/viewer/issues/2677