In ssao.frag we are computing theta valaue and it looks that intel driver doesn't like too big values for sinus and cosinus computations.
I just used modulo 360 to store lower angle values in theta variable.
On some tracks it was reporting following message:
[warn ] GLWrap: OpenGL debug callback - API
[warn ] GLWrap: Error type : ERROR
[warn ] GLWrap: Severity : HIGH
[warn ] GLWrap: Message : GL_INVALID_VALUE error generated. Size and/or offset out of range.
This fixes#2504
It is enabled by default for OpenGL 3.3, but we need it for some of our shaders in render_geometry.cpp (which are OpenGL >= 3.2) and also for InstancedColorizeShader.
The check for GL_ARB_geometry_shader4 doesn't have sense at all because we don't use this extension and our geometry shaders use functionality which is available in core OpenGL 3.2.
The reason that it wasn't working for older mesa versions must be a bug in mesa or maybe missing other functionality (but not GL_ARB_geometry_shader4).
I checked it with mesa 11.2 and current git version and it works fine on intel, nouveau and with software rendering.
It needs some testing because it potentially affects all drivers with OpenGL >= 3.2 on every platform.
If someone could test it with Radeon drivers, I would be really happy to enable it in upcoming release, at least on linux.
- use officially supported pkg-config instead of pkgconf replacement
- add zlib library to dependencies
- remove GLU library which is not needed at all since this commit: 60dc171700
- add libgl1-mesa-dev and mesa-common-dev which contains OpenGL headers that we need
- use libcurl-gnutls instead of openssl because it is used by default in Debian/Ubuntu for STK and many other projects.
This should allow to run linux static package even if libglu1-mesa package is not installed. And the utilities from GLU library are not used in STK anyway.
KartSelection object, to avoid the two instances of the
kart selection screen to interfere with each other. Removed
tearing down the kart selection screen. Also fixed crash
when starting the kart screen after a network kart screen.
The problem was with shader-based pipeline with disabled "advanced effects" in options.
In this case we don't use RTTs and gl_FragCoord contains values in range of whole window. So fo 2 players we still get gl_FragCoord.y = 0..window_size instead of gl_FragCoord.y = 0..window_size/2.
The easiest way to solve it seems to be modulo it by current viewport size. It should be compatible with advanced pipeline as well as single-player games.
Atm. I'm not sure if this should be applied to 0.9.2 branch. It should work fine, but needs some testing.