On Mo, 1.12.2014, 15:28, Timothy Reaves wrote:
> A rant it may be, but, accurate.  Debug statements should never be made
> from a ‘production’ application, and your code added a LOT to what was
> already polluting system logs.

If you prefer an empty logfile, please #ifndef MAC_OSX away all
diagnostics and warnings. These are a few lines of extra messages, not
wrong initialisations.

I ask again: Does current trunk render correctly or not after you have
clicked away ("ignored") the warning panel? I am waiting for your simple
yes or no answer for days now. If all looks OK, the tests and warnings can
be removed from a Mac build.

I did not break anything, but try to make life easier for the team of
currently two regular Launchpad bug report referees, at the incredible
added burden of up to about four extra log lines on a *working* system,
intended to be visible in a few test builds before 0.13.2. And yes, 2-4 of
these can hopefully go away when string parsing is confirmed to work in
all cases, but I don't know how I should know how Intel and AMD (formerly
ATI) formatted their driver strings since 2006 (?) on all subvariants of
supported systems, so I am in fact expecting some string parsing errors by
self-assembled hardware and self-compiled operating systems unknown to me,
used by other people unknown to me, on other continents. If the program
tells the user what to do not only in a hidden logfile which some bug
reporters have not even found yet, but in an alert panel, we will
hopefully not get zillions more boring redundant bug report from
decade-old systems. This is an attempt to find out what is going on here
on all other operating systems, and ultimately find out what is really the
culprit that the GLSL1.10 shaders cause problems even for GLSL1.20 capable
systems.


> As to what I claim my Mac has, the nice thing about Macs is you don’t have
> to ‘claim’.  It’s very well documented.  Here is one such page:
> http://renderingpipeline.com/2012/06/mac-opengl-capabilities/
> <http://renderingpipeline.com/2012/06/mac-opengl-capabilities/>  . You
> also don’t have to worry as to if a user has updated their driver, or is
> using the correct driver.  Not an issue on a Mac.

Great, OpenGL3.2, not 4. Then why does the call glGetString(GL_VERSION)
deliver an answer from your OpenGL driver that basically says "This driver
supports OpenGL 2.1"? Such a message also appears on e.g. a Windows system
when drivers are old. The solution on a Windows or Linux or Ubuntu or
FreeBSD (or whatnot) system is to download and install new drivers, a.k.a.
update drivers, and then it reports OpenGL3 or better at this query if the
hardware is capable, and works. I don't know if I should be surprised if
Apple systems cannot be updated in a similar way, or if you just buy a new
Apple. On the other hand why would there be e.g.
http://www.macupdate.com/app/mac/49241/quadro-geforce-os-x-drivers


It may then be a Mac specific issue not found on the rest of computer
systems, which has been reported by you in a very unfriendly way not
earlier than last Friday.


> The current trunk reports that my machine is using 2.1 & GLSL 1.2, and
> then states this is not sufficient, and to upgrade my hardware and/or
> update my driver.  This is clearly a defect.  There really is no
> interpretation.  This machine is a MacBook Pro (Retina, Mid 2012), and all
> Macs made in a very long time have supported - via driver - at least GL
> 3.2 which would be GLSL 3.2.

I ask again: Does current trunk RENDER correctly or not after you have
CLICKED AWAY the warning panel? I am waiting for your simple yes or no
answer for days now. If stars and planets look OK, the tests and warnings
can and should be removed from a Mac build, sure.

But the question remains why does glGetString(GL_VERSION) deliver an
answer from your alleged OpenGL3.2 system that says OpenGL2.1? This is a
call that I thought was independent from Qt and reports a system
component. http://www.macupdate.com/app/mac/17087/opengl-extensions-viewer
would give an independent diagnostic.



> I’ve created a branch where I specify the 4.2 driver, and then all of the
> shaders fail to compile, crashing the app.  The #version XXX first line
> seems to be a requirement.

As I have already written, it is a requirement for code starting with GLSL
1.20. If the line is missing, it's compiled as GLSL1.10 for OpenGL, or as
GLSL ES 1.00 for OpenGL ES 2.00.

See these PDFs from the Khronos site:
The OpenGL® Shading Language
The OpenGL® ES Shading Language


> So I added the #version line, and changed the
> shaders so that they compile, but, not the app crashes for something not
> in our code; it seems to be in Qt, and when Alex tries this branch, his
> machine does not crash, but, just doesn’t render correctly.
>
>   I’m more than will to try & solve this issue, but, as being largely
> ignorant of GL, and what exactly needs to be done to configure the Qt GL
> subsystem.

Does specifying version 4.2 work with the drivers reported as 3.2 on that
website? I guess not. Have you tested what kind of context/version/... you
received later?

When you indeed want to use some higher version like 3.2, there is this
relevant issue about initializeOpenGLfunctions() found in this year's Qt
blogs and docs. Stellarium currently runs circles around not deriving
rendering classes from QOpenGLFunctions as Qt recommends. Staying at
OpenGL2.1/OpenGL ES2.0 level is as I can see it an attempt to keep
compatibility with as many systems as possible as long as 3.2
functionality is not required. However the last months have shown that
also ANGLEs don't come as ultimate saviours for oldfashioned Windows
hardware (oldfashioned, not old. Yes my 2010 netbook has only lousy
OpenGL1.4), and systems not reporting OpenGL3/GLSL1.30/ps_3_0 in whichever
init strings are queried, are simply doomed to fail, at least on non-MacOS
X systems.

The OpenGL initialisation can be improved, no doubt. Qt5.4 brings another
round of changes and deprecates currently used classes. Somebody hopefully
finds time and has knowledge to put it all right again upto 5.4. Fighting
against testing and improving diagnostics is however no improvement
towards understanding what works or does not work.

BTW, this seems to be related: http://qt-project.org/forums/viewthread/20424

And now, apply this...

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