Surfaceless mode ES2.0 number of vertices limitation
System information
- OS: Linux 5.7.10 on ARM32 running on STM32MP157 CPU
- GPU: Vivante GC400
- Mesa version: 23.0.0, ES2.0, DRM
Describe the issue
The number of vertices in surfaceless mode appears to be limited to around 1800. After this no further triangles are rendered and no GLError returned. In surface mode this limitation does not exist.
The issue can be easily seen using the kmscube test program (relatively recent version that supports surfaceless mode "kmscube -x"). Compile kmscube after replacing file cube-smooth.c with the attached version. The attached version simply draws many small rotating cubes instead of one. kmscube (no args) draws 1000 small cubes (correct) kmscube -x draws the first 150 cubes only (about 1800 vertices)
***Update: After more experimenting it appears the limitation is not related to number of triangles/vertices but rather to the number of glDrawArray calls. Drawing more triangles using a single draw call (Triangle strip) increases the number of triangles actually drawn to screen. Reducing calls to a 1/6th increases number of triangles drawn by 3 approximately. Surface mode draws correct in all cases.