Hello Fabien!

All bug reports received on Launchpad July-November came from systems
which detected themselves as "OpenGL 2.1/GLSL1.20" (or less) or, if people
used ANGLE, systems which ANGLE detected as "ps_2_0", which to my testings
on only about 7 Windows (XP, 7, 8.1) PCs so far happens if those systems
have no OpenGL drivers which would support GLSL1.30. All responding
reporters who were able to update drivers accordingly could solve their
problems.

I therefore implemented lots of startup tests which complain very
verbosely and therefore hopefully clear enough for the average user (on
first start only), but continue, if systems don't declare GLSL1.30
support. Timothy Reaves started a rant on Friday about too verbose debugs
and messages on his Mac. He says his Mac has OpenGL 4.2, but the startup
tests only finds OpenGL2.1 installed on his system. On Windows the answer
string (glGetString(GL_VERSION)) always returns a string including highest
OpenGL version supported, and OpenGL context or format (?) defaults to
that. I assumed the same would be true on the other systems. He still has
not answered whether this Mac that declares OpenGL2.1/GLSL1.20 in the
logfile then works or has problems, but he tried to prepend GLSL1.30 to
the shaders to make them work, which does however not work as I also had
tested because GLSL1.30 syntax is different.

It appears that while the syntax of the shaders is still (implicitly, by
not specifying a #version line) GLSL 1.10/GLSL ES 1.00, they require
hardware functionalities usually only available in systems which would
also be able to compile GLSL1.30 (i.e., OpenGL3.0+ systems) or would
fulfill ANGLE/DirectX's ps_3_0 tests. Note it is according to GLSL specs
not even GLSL1.20 without a first line that says #version 120. (And
specifying a line other than "#version 100" breaks OpenGL ES2/ANGLE...) I
think a test with #version 120 caused a deprecation warning by NVidia's
shader compiler, so syntax is GLSL1.10/GLSL ES 1.00 only.

I *can only guess* that instruction count is too much on some systems (and
you have seen the bugs from ANGLE/ps_2_0 systems), so maybe it is a
critical OpenGL 2.1 extension (built into 3.0 or widely available on
modern systems) which is used implicitly that should be tested at startup,
but I have no idea which (I added this optional startup dump as first
step, but my systems come with some 57 to 200+ extensions, so where is the
needle in the haystack?). Bug reports come with either planets not
rendered or stars not rendered. Almost all can be solved by updating to
drivers which declare OpenGL3/GLSL1.30 level at startup, even if what they
then compile may be "GLSL1.10 under the assumption of existence of
extension ARB_XY". A single exception is my 2008 home PC with GeForce
8200/OpenGL3.3/GLSL3.3. It crashed whenever a Planet object came into
viewport with 0.13.0, but works almost stable since V0.13.1, but still
crashes *sometimes* when I zoom in to a Planet object. Maybe it's an issue
in NVidia's XP drivers, or maybe it's a shader problem, I don't know.


On https://www.opengl.org/wiki/OpenGL_Extension I find a section which may
be relevant for Macs:
================
Targeting GL 2.1, but on GL 3-class hardware (mainly for Mac OSX versions
without GL 3.x support):
================

So maybe on Macs some of these extensions listed there must be tested and
activated explicitly before initializing an OpenGL context or so? Only a
Mac developer can test this. And all startup and Qt-correct initialisation
has to be changed for Qt5.4 anyways.

Given that GLSL1.30 came with OpenGL3.0, a simple solution could be to
test for OpenGL 3.0, and drop support for all lower systems when they
cause needless trouble. Those would be put off to a possible V0.12.5. 
Also the hope that ANGLE would save all DirectX9/OpenGL2.0 systems turned
out wrong. However, in the link you sent there is hint at an ANGLE that
goes to DirectX11, which can fall back to software rendering if the
hardware does not make it. Now, what is better, OpenGL with MESA or ANGLE
translating OpenGL to software-rendering DirectX, this must be tested.


Kind regards,
Georg


On Mo, 1.12.2014, 11:00, Fabien Chéreau wrote:
> Hi,
> what makes you think that GLSL 1.20 is not sufficient? If I introduced
> non-compatible instructions in the planet code I should change them to
> make
> them GLSL 1.20 compatible, it should not be a big deal since I don't do
> anything special in this code.
> Fabien
>
>
> On Sun, Nov 30, 2014 at 6:45 PM, Georg Zotti <georg.zo...@univie.ac.at>
> wrote:
>
>> Hi!
>>
>> When I explicitly ask for an OpenGL2.1 format (edit StelMainView, line
>> 375:)
>>
>>         // Create an openGL viewport
>>         QGLFormat glFormat(QGL::StencilBuffer | QGL::DepthBuffer |
>> QGL::DoubleBuffer);
>>         // GZ Test this on Win, Mac, Linux and FreeBSD!
>>         glFormat.setVersion(2,1); // Explicit setting was always
>> missing!
>>         QGLContext* context=new QGLContext(glFormat);
>>
>> I still get a 4.4 format (i.e., the highest my GPU has) when tested
>> later.
>> What is the behaviour on a Mac, and on Linux? How would I set a version
>> correctly? I used Qt5.2/MinGW. Is it different on Qt5.3? There is
>> something NOT going on here as written in the Qt docs, as
>> StelQGLWidget::initializeGL() is apparently never called (and was not
>> called for years now!).
>>
>> So, I cannot turn OpenGL version down on Windows. Maybe this behaviour
>> is
>> different on a Mac? This is also a result gained from apparently
>> excessive
>> verbosity. A first step towards getting it right finally.
>>
>> BTW, with a config variable:
>>
>> QT_QPA_VERBOSE=opengl:1
>>
>> you get lots of extra info. Not sure if this helps, though.
>>
>> Regards, G.
>>




------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel

Reply via email to