cocos / cocos-engine

Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
https://www.cocos.com/en/creator
Other
8.21k stars 1.94k forks source link

WebGL2 keep showing unbound buffer when change skinning mesh root #15455

Open hana-alice opened 1 year ago

hana-alice commented 1 year ago

Cocos Creator version

3.8.0

System information

test on mac 13.4 chrome

Issue description

When changing node of skinned model, webgl keep telling there are unbound buffers.

Somehow we noticed:

  1. when change hairstyle of a human model, node is updated;
  2. skiningRoot setter triggered;
  3. tryBindAnimation in skinning root setter binds gfx buffer to descriptor set;
  4. update -> ensureEnoughBuffers in skinning root setter destroy original buffers but without updating descriptor set; thus error occurred when drawing.

Relevant error log output

No response

Steps to reproduce

Change node of skinned model, like change another hairstyle of a human model.

Minimal reproduction project

No response

hana-alice commented 1 year ago

@wuzhiming any progress will be updated here

hana-alice commented 1 year ago

A possible solution: WXWorkCapture_16868270443507