感谢提供详细数据。我对比了两个版本的数值,先说结论:3.3 的 GPU 内存确实会比 3.2 多,这不是 bug,是架构变化导致的。
拆开看三项差异:
1、GPUBuffer(0.29M → 2.4M):这是最大的变化来源。3.3 重写了 Uniform Buffer 管理系统,采用了集群式预分配(UniformBufferCluster),用空间换性能。每个材质/渲染对象的 Uniform 数据会分配在预分配的大块 GPU Buffer 里,空余部分也计入内存。模型越多,UBO 集群扩展越多,这也解释了你说"多个模型时差 100M"的现象。
2、RenderTexture(6.58M → 9.05M):确认下两边的画布分辨率是否一致?RT 大小跟 viewport 尺寸直接挂钩,分辨率不同会导致差异。如果分辨率一样,可能是 3.3 内部多创建了一些中间 RT。
3、纹理(13.99M → 15.67M):两个版本的纹理内存计算逻辑完全一致,差异不大,可能来自引擎内部初始化时多创建了几个小纹理。
另外提醒一下:3.3 的 Stat 面板里 "AllTexture" 这个数值包含了 RenderTexture,不能直接跟 3.2 的 "TextureMemory"(不含 RT)对比,容易误判差异更大。
如果你的场景模型特别多,想控制 GPU 内存,可以考虑尽量复用材质实例、减少独立材质数量,这样 UBO 集群的占用会小很多。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。