Dear Timothy, My feeling was that maybe 80% of reported "bugs" (apart from misunderstandings) since July were those by people with outdated GPUs or at least outdated drivers on several operating system configurations which to my knowledge are not regularly tested by developers, zillion hardware variants that go back in parts to 2003, and so on. I was trying to identify the most likely culprits and understand under which circumstances systems "don't work for me":
OpenGL less than 2.1: No-go. Tell the user sorry, and exit. OpenGL drivers reporting only 2.1 support: we had at least two reports on missing stars. On other systems, only minor issues in Night Mode, therefore I would consider this "runnable with acknowledged problems". shader support for GLSL1.20 only: reports about missing planets. ANGLE reporting ps_2_0 support only: shaders are too long, no planets. Mesa <10, reported with modern Radeon card on FreeBSD: stars missing. So what? If I test all those on startup and tell the users that problems are known to follow, and we cannot do much about them unless they update their systems, why is that a bad idea? We will get less of those reports, hopefully. I did not understand what you mean by "broken code" > There is so much wrong with this, but, put simply, the application > requests OpenGL 2.1 with GLSL 1.2, then tells the user to upgrade their > hardware as this level of support is not sufficient for the app. Wow. The app does not "request" OpenGL2.1+GLSL1.20, it only detects what the driver provides and states this may not be enough, but offers to continue. > And if I actually update the code to request & use the highest-supported > versions, then the app crashes with the shaders failing to compile. What did you update in the code? Have you updated your *drivers* as instructed? Or why did shader compilation fail? Did the program work normally after you have acknowledged/"ignored" the warning panel (then the test needs to be sharpened and you, on a Mac with NVidia, should not see the warning, but my IntelGMA/Win7 Office PC must still see it, and likely various Linuces with either proprietary NVidia or Radeon drivers or Mesa also must see it), or did you experience graphics problems? New drivers should come with OpenGL 4 for your card, so what prevents you from upgrading, or is that still 2.1 on Macs? If you just ignore the message, I expect that the installed OpenGL2.1+GLSL1.20 combination is not enough to run Stellarium (as has been reported and experienced on several non-Mac systems), and this is what the message panel tells you, exactly one time, on first run. Putting another log entry here indicates to us logfile readers that user continued on a likely broken system. I have actually meanwhile found that the current shaders are #version-lessly compiled as GLSL1.10/GLSL ES1.00, but testing for GLSL1.30 support gives at least some confirmation that hardware and drivers fulfills modern standards. There is unfortunately still no definitive answer for me on the relation between OpenGL hardware driver strings and ANGLE's translation to DirectX 9, I only could see that systems which report GLSL1.20 support always report as ps_2_0 in the ANGLE driver string, and fail to show the planets because the shader is too long. And NVidia PCs with 6800 and 7300 cards were reported to miss the planets in OpenGL mode. They are GLSL1.20 cards. Now tell me what I can test better? Maybe tell me even why my 8200 (could deliver OpenGL3.3/GLSL1.30) crashes *sometimes* when I zoom in to planets. With the diagnostics branch, I originally only wanted to get rid of those lousy usually log-less bug reports, then Fabien asked me to get rid of now-deprecating Qt classes. Sorry, I could not finish this process, the topics "context", "surface", "window" , "widget", etc. are a bit too involved for me, while it may only take half an hour for the better developers like you, and when 5.4 likely brings more changes. Therefore I have prevented these parts from compilation (they don't disturb in any way, but may already be valid steps towards a solution) until someone more knowledgeable like you takes over. The branch with all those tests was under merge proposal for several weeks to gather objections and improvements, and it was even open to commits by stellarium team. If you look into various bug reports and logfiles sent on second and third request by "does not work"-bug reporters, the OpenGL driver strings are very vendor-dependent. Sometimes the OpenGL version number is in front, sometimes in the back, there is no standard. Therefore it might seem a bit verbose at the moment to print full string and what I try to decipher. What if parsing fails? I don't consider an extra line in a logfile a problem, but hope that with a few more than ~2 PCs per currently active developer to test this we get a larger sample of driver message strings reported by people testing intermediate versions and still having problems, in order to enhance usability of, and further sharpen, those admittedly stupid, but apparently necessary startup tests. It is unlikely anybody on those platforms would compile their own versions from a branch, so this had to go into trunk to get more circulation in the "testing versions" which Alex is friendly enough to build almost weekly. Debug log entries can easily be taken away before next RC or release, when hopefully this testing orgy could be stabilized. Else, please tell me a better solution than having no tests for known-to-be-outdated hardware and definitely not enough diagnostics, as we had in July. Regards, Georg On Fr, 28.11.2014, 17:27, Timothy Reaves wrote: > OpenGL is a complex development topic, and the marriage of Qt, OpenGL, > OpenGL ES, and their shading languages, and the apps over-riding both the > Qt app and the Qt GL widget, has always been difficult. The last commits > by Georg & merged in by Alex just make things worse, and need to be > reverted. Georg, if you’re working towards something new for Qt 5.4, I > applaud that, but, it should be kept in a separate branch until completed, > and Alex, you should have merged it until it’d been conformed to work on > all OS’es. > > Let’s have a look at the current broken code. The following is from one > of my Mac’s. > > Detected: OpenGL "2.1" > Driver version string: "2.1 NVIDIA-10.0.43 310.41.05f01" > GL vendor is "NVIDIA Corporation" > GL renderer is "NVIDIA GeForce GT 650M OpenGL Engine" > GL Shading Language version is "1.20" > GLSL Version Number after parsing: 1.2 > This is not enough: we need GLSL1.30 or later. > You should update graphics drivers, graphics hardware, or use the MESA > version. > Else, please try to use an older version like 0.12.4, and try there with > --safe-mode > Config option main/ignore_opengl_warning found, continuing. Expect > problems. > > > There is so much wrong with this, but, put simply, the application > requests OpenGL 2.1 with GLSL 1.2, then tells the user to upgrade their > hardware as this level of support is not sufficient for the app. Wow. > And if I actually update the code to request & use the highest-supported > versions, then the app crashes with the shaders failing to compile. > > With the lnksidasical development we have, this may be an insurmountable > issue. But I think we need a well though out, defined, described, approach > to getting the OpenGL mess cleaned up. The issues should be enumerated, > the recommended approach described & discussed, and then we can each see > what we can do to help get it implemented. > ------------------------------------------------------------------------------ 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