ioquake / ioq3

The ioquake3 community effort to continue supporting/developing id's Quake III Arena
https://ioquake3.org/
GNU General Public License v2.0
2.42k stars 529 forks source link

Disable VAO cache under Emscripten #678

Open jdarpinian opened 4 months ago

jdarpinian commented 4 months ago

The VAO surface cache uses bufferSubData and triggers a very slow path in some GLES implementations. Specifically I have observed 10x frame times with ANGLE/Metal on macOS and with Mali on Android.

Of course disabling the cache is not ideal. But at least this fixes wildly inconsistent frame times for now.

zturtleman commented 4 months ago

The VAO cache is slow on practically everything except Nvidia's driver. (The handling could use being reworked.)

Commit message suggestion:

OpenGL2: Disable the VAO cache by default

The VAO surface cache uses glBufferSubData and triggers a very slow path
in some GLES implementations. Specifically I have observed 10x frame
times under Emscripten with ANGLE/Metal on macOS and with Mali on
Android.