Intel GPUs are known to not be very performant compared to dedicated GPUs.
Wgat driver are you using?
As for the code, you're totally missing the point of a vertex array. They exist to batch draw primitives and not to draw single triangles.
And finally 200 FPS is still quite high. Remember that FPS is non-linear, this means that the FPS will not go down proportionally to the number of drawn triangles.
Yes, but isn't the point of vertex arrays to reduce the number of draw calls? I merely used 10 for the large triangles. Drawing these 10 triangles at once wouldn't really make a difference, would it?The point of vertex arrays is to reduce draw calls and since draw calls are relatively slow/expensive batching vertices together can perform better. However there shouldn't be that big of a difference for 10 draw calls.
I'm rather complaining about the relative loss since I could draw 50 times more triangles when they were smaller.There are different computations to be done, so it can very well yield different results, but generally even a Intel GPU should be able to handle a good amount of draw calls.
Is this normal behaviour? Does that mean that I have to split large triangles into smaller ones?
So if you run some other simple OpenGL games, do they run fine?Well, my Intel GPU is indeed a little slow but Trine runs in windowed mode with 1280x800 at around 20 FPS.
What driver version did that installer install exactly?i915 4.4.0-53-generic
If you get some OpenGL testing tool, what OpenGL version does it say is supported and what else does it report?glmark2 runs in "OpenGL 3.0 Mesa 13.1.0-devel". A quick look in glxinfo confirms this (there is no version 4.*).
Do you see a lot of difference if you run it in release mode?Nope. No difference with fullscreen and deactivated V-Sync either.
Might want to get a profiler and figure out where the bottleneck is.Any suggestions what to use or how to do that?
Maybe you are just Fillrate-limited.
Number of pixels your graphics card has to draw:
With 10 large triangles: 10x800x800/2 = 3.2 Megapixel
With 500 small triangles: 500x100x100/2 = 2.5 Megapixel
So actually in terms of fillrate, 500 of your small triangles are even faster than 10 of your large ones. But with 500 triangles you get more overhead (draw calls) and more load on the rasterizer etc. In the end you get about the same performance.
I don't know if this is the reason for your observed behaviour but for me it seems plausible.
Maybe you are just Fillrate-limited.
Number of pixels your graphics card has to draw:
With 10 large triangles: 10x800x800/2 = 3.2 Megapixel
With 500 small triangles: 500x100x100/2 = 2.5 Megapixel
So actually in terms of fillrate, 500 of your small triangles are even faster than 10 of your large ones. But with 500 triangles you get more overhead (draw calls) and more load on the rasterizer etc. In the end you get about the same performance.
I don't know if this is the reason for your observed behaviour but for me it seems plausible.