我有这个 UBO:
layout(std140)uniform _ObjMatrix
{
layout(row_major)mat4x3 ViewMatrix[256];
};
在 OpenGL 桌面上,大小为 3*Vec4*256 元素(总大小 12288 字节) - 这是我所期望的 = OK
但是在我的手机上运行时,OpenGL ES 3.0,大小为 4*Vec4*256 个元素(总大小 16384 字节)= Not OK
我认为std140
应该保证所有平台上的布局相同?
那么问题是什么以及如何解决呢?
我需要更小的尺寸以获得更快的性能(因为传输带宽更小)
在桌面、Apple iOS 上工作正常,但在 2 个 Android ARM Mali GPU 上失败,这可能是 ARM Mali 驱动程序中的错误