Spirte设置Tiled报错导致场景编辑器卡死

  • Creator 版本:3.71

  • 目标平台: Creator编辑器

  • 重现方式:将一纹理设置九宫格(即borderLeft/Top/Bottom/Right设置不为0), 然后sprite type设置为Tiled

  • 上个正常版本: cocos creator 2.4.6

  • 首个报错: Error: [Scene] Failed to allocate chunk in StaticVBAccessor, the requested buffer might be too large: 3154176 bytes

  • 重现概率:100%

  • 宏配置:已经把’BATCHER2D_MEM_INCREMENT 设为2303

  • Demo文件:TiledTest.zip (25.6 KB)

长宽设置的小点

这个问题引擎组始终要解决吧, 同样情况在2.4.6版不会报错

我们用 demo 确认下

这个问题确实是由于我们目前的顶点分配机制导致的,由于我们希望将顶点分配到同一个 GPUBuffer 中,同时又希望保持内存的增长尽可能符合项目需求,所以加入了 BATCHER2D_MEM_INCREMENT这个参数,但是目前的问题是由于一次性申请了过多的顶点,导致了无法分配出 GPUBuffer,造成了此报错。
我们将会在之后的规划中重构此处代码来解决这个限制问题,目前只能建议您尽量不要在一个组件中使用如此大量的顶点,我们会尽快进行优化调整。