View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0005620 | Spring engine | General | public | 2017-06-23 08:09 | 2017-07-25 15:37 | ||||
Reporter | Google_Frog | ||||||||
Assigned To | Kloot | ||||||||
Priority | high | Severity | major | Reproducibility | N/A | ||||
Status | closed | Resolution | no change required | ||||||
Product Version | 103.0 +git | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0005620: Zero-K wil not use an engine that requires openGL 4.1 | ||||||||
Description | This change makes users require openGL 4.1: https://github.com/spring/spring/commit/e187550493fb63567151712050bd41264de3d653 I started collecting Platform.glVersionShort from users on the 16th of June and the result is that 45% of users do not meet the requirement of openGL 4.1. The <1 GB vram popup provided me with anecdotal evidence of people with poor graphics cards who are able to run ZK with few problems. I don't see ZK using any dev engine with this openGL version requirement in the foreseeable future. I have tested the change on a computer without openGL 4.1 and Spring simply crashes with a message "could not create GL context" so the change seems to add a strict requirement. The message could be better but that is besides the point of this ticket. There are other arguments for removing the requirement of openGL 4.1. Ludam Dare-esque games for example. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
Kloot (developer) 2017-06-23 11:45 Last edited: 2017-06-23 11:48 |
what is the argument against telling people to update their drivers? GL4.1 is seven years old, GL3.0 dates back to 2008. a graphical modernization of Spring cannot happen without requiring a relatively recent baseline. |
hokomoko (developer) 2017-06-23 15:47 Last edited: 2017-06-23 15:49 |
Using GL3 makes sense but IMO asking for GL4 compliance is climbing up a tree we may not be able to climb down from. Yes, it sucks and it's annoying that people use potatoes to play spring games, but imo the community isn't large enough to allow us to kick away said people. Now, if you say that "they should just update drivers", it's going to work for some and not for others and in the end you may be right, but the cost until then may be too high (in people getting upset, or not being able to run spring or w/e). That's life. |
abma (administrator) 2017-06-23 18:59 |
> what is the argument against telling people to update their drivers? GL4.1 is seven years old, GL3.0 dates back to 2008. I didn't investigate but IMHO people usually use the latest gfx drivers as either windows offers to update them or the installer. More likely there don't exist newer drivers for the given Hardware. @Google_Frog: do you have information which OS/GPU/OpenGlVersion is used? Or is it just >80% on windows? |
Kloot (developer) 2017-06-24 00:46 Last edited: 2017-06-24 00:48 |
We might have reached a crossroads here, since I'm not interested in being a potato farmer. You say we can't afford to lose any of the low-end people, I say we can't afford to keep catering to them. Old players might be able to look past the visuals of a particular Spring game, but they will eventually get bored and leave. Newcomers won't be so forgiving, appearance matters for first impressions. The massively declined level of forum activity is one *very strong* indication of this. The short-term cost of raising requirements does not even begin to approach the long-term consequences (wrt community, technical debt, maintenance burden, ...) of being all-inclusive. |
gajop (developer) 2017-06-24 03:13 |
What's the benefit of GL4? What will we be able to do once that is enforced? I think this is an important argument to present. |
Kloot (developer) 2017-06-24 14:59 |
Instancing, tessellation, compute shaders, async drawcalls, VAO's, PBR, ... crap that any decent midrange card is capable of these days but we have no access to. It's like asking "what's the benefit of shaders?" when all you know is the FFP. |
hokomoko (developer) 2017-06-24 15:20 |
VAOs are in 3.0 as well. PBR can be done in 3.0, it's mostly about shaders as far as I understood it, so even usable with the current custom shader framework. I Haven't checked the rest. Also note that using PBR this will require existing units to be (partially) retextured. Crossroads-wise, I agree, another point on the agenda for the planned summit. |
Kloot (developer) 2017-06-24 15:46 Last edited: 2017-06-24 15:49 |
"VAOs are in 3.0 as well." you didn't spend your 5 seconds on Google carefully enough, they are in 3.0 ***ES*** (a different API line with its own version scheme) but only an extension in regular 3.0. a lot of things will need to change, that's kinda the point. |
hokomoko (developer) 2017-06-24 15:48 |
I actually did spend some time. https://www.khronos.org/opengl/wiki/Vertex_Specification#Vertex_Array_Object says "Core since version 3.0" Maybe I misunderstood it though. |
hokomoko (developer) 2017-06-24 15:50 |
Also https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGenVertexArrays.xhtml seems to claim it's since 3.0 |
Kloot (developer) 2017-06-24 15:56 |
as a core extension, yes (meaning you can't assume a driver will support it). as an actual core feature it's not available in 3.0. |
hokomoko (developer) 2017-06-24 16:26 |
Seems to be supported pretty much on everything (91% when survey was made): http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_vertex_array_object |
sprung (reporter) 2017-06-24 20:41 |
A GL version survey made on the general population would be good here. The survey made of ZK players is possibly biased towards old vets. |
silentwings (reporter) 2017-06-25 09:33 |
I suggest also collecting card names, matched to OS and Gl versions, and checking manually via google what % of the 3s are actually using latest drivers. It might take 1-2h to check, but seems worth it. (The % on the very latest, 4.5, is high, which is rather suggestive.) If often no, problem solved. If mostly yes, I don't feel I'm in a position to recommend. |
Google_Frog (reporter) 2017-06-26 07:57 |
My stats are from chobby with the wrapper, this will mostly be windows users. Some vets are using SWL or flobby for momentum reasons but I don't know how much of an effect this has. I expect that people mostly keep their graphics cards up to date. 0 AD has opengl stats from 2015: http://feedback.wildfiregames.com/report/opengl/ I have started looking at the steam hardware survey and this table http://opengl.gpuinfo.org/. The formatting of the data is painful so I don't have any clear results yet. However I would be surprised if less than 90% of steam users have support for openGL 4.1. This makes the ZK and 0 AD stats surprising, perhaps players of FOSS games have generally worse hardware. An argument against telling people to update drivers is that some will leave rather than expend the effort and others won't have recent enough hardware. Could we at least have a bugfixed release version with opengl 3.0 before looking into using 4.1? Using features specific to 4.1 sounds like a major stability affecting development which would further push back a release. With ZK not using the dev engine version I worry that there won't be a reduction of bugs and we'll never see a stable release. |
Kloot (developer) 2017-06-26 10:46 Last edited: 2017-06-26 15:55 |
That argument ("some will leave, others won't have the HW") can be extended into the future indefinitely and indicates why development should *never* be guided by minority interest. There will be a tough choice to make if ZK has taken the opposite view. I predict the outcome of a GL survey won't be too favorable for the "stay with 3.x" crowd (because out of all the oft-heard complaints, "I have a GTX9001 and 1024 cores, why does this game look and run so terrible??" ranks near the top) and the question is how to organize it. A tool that automatically uploads stats to a springrts subdomain could work, but that requires someone to setup the infrastructure first. Depending on when a 104 release is scheduled the requirement can be downgraded, though afaik there are no immediate plans. In the meantime you can grab be1c7868. |
ThinkSome (reporter) 2017-07-06 12:02 |
I would be in favor of raising OpenGL requirements. Apparently nearly all Intel iGPUs from 2012 (5 years old) can do OpenGL 4.1 https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units All radeon from 2009 (8 years old!) can do it https://en.wikipedia.org/wiki/Radeon All Nvidia from 2011 (6 years old) onwards https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units I remember I heard some complaints about 103.0 being more demanding, but come on, advertising games as running on pentium 4 IMO does us more harm (by making players think they are really shitty graphics wise) than good. In the end we can still keep some 100.0 hosts running with old game versions for those who can't afford a basic GPU for 26,19 EUR (this is like half the cost of a license for a single AAA game, no?): https://geizhals.de/?cat=gra16_512&xf=6491_4.1~6491_4.3~6491_4.4~6491_4.5 If these old players are really so tied to spring then they'll find no problems with the above. |
Google_Frog (reporter) 2017-07-07 04:00 |
Do you want Platform.gpu or Platform.glRenderer? |
gajop (developer) 2017-07-07 09:05 |
I think it's reasonable to report all Platform OpenGL related information as it seems there are users who are simply using old OpenGL drivers, even though their card supports OpenGL 4.1+. |
Google_Frog (reporter) 2017-07-07 10:13 |
I mean what do you want me to tell you about? Also, my collection so far has not supported the hypothesis that people are using old drivers. |
gajop (developer) 2017-07-07 12:01 Last edited: 2017-07-07 12:02 |
Just having tabular data available publicly should allow for easy processing. If you want you can do a quick summary on each field of data, e.g. show top N most common values for each feature. Additionally you can provide some more important summaries such as how many people have OpenGL == 3, OpenGL <= 4.0, OpenGL == 4.1 and OpenGL > 4.1. |
Google_Frog (reporter) 2017-07-09 16:13 |
I had an issue with collecting glRenderer, I think only strings without '/' were reported. I've started collection again and hopefully I will get all the data. |
Sanguinario_Joe (reporter) 2017-07-14 09:01 |
I also in favor to move to a newer OpenGL implementation. Anyway, I created a related issue regarding core-profile/compatibility-profile: https://springrts.com/mantis/view.php?id=5649 |
Sanguinario_Joe (reporter) 2017-07-14 13:21 |
New point of view... 0005650 |
Google_Frog (reporter) 2017-07-16 14:17 |
I've attached glRenderer data from the last seven days. |
Kloot (developer) 2017-07-25 15:37 |
the majority of cards in that dataset is GL4-capable with a driver update. also, as should now be extremely clear from the 0005666 story, asking players to go to the trouble of finding newer drivers has to be *standard policy* regardless of engine requirements or fear that they will leave. since it was decided in the last meeting to require only GL3 for 104 the rest of this discussion is moot, and whether ZK follows along with 105 is a decision for another day. |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2017-06-23 08:09 | Google_Frog | New Issue | |
2017-06-23 08:09 | Google_Frog | File Added: zkOpenGlVersion.csv | |
2017-06-23 11:45 | Kloot | Note Added: 0017876 | |
2017-06-23 11:45 | Kloot | Note Edited: 0017876 | View Revisions |
2017-06-23 11:48 | Kloot | Note Edited: 0017876 | View Revisions |
2017-06-23 15:47 | hokomoko | Note Added: 0017877 | |
2017-06-23 15:49 | hokomoko | Note Edited: 0017877 | View Revisions |
2017-06-23 18:59 | abma | Note Added: 0017880 | |
2017-06-24 00:46 | Kloot | Note Added: 0017881 | |
2017-06-24 00:48 | Kloot | Note Edited: 0017881 | View Revisions |
2017-06-24 03:13 | gajop | Note Added: 0017882 | |
2017-06-24 14:59 | Kloot | Note Added: 0017883 | |
2017-06-24 15:20 | hokomoko | Note Added: 0017884 | |
2017-06-24 15:46 | Kloot | Note Added: 0017885 | |
2017-06-24 15:48 | hokomoko | Note Added: 0017886 | |
2017-06-24 15:49 | Kloot | Note Edited: 0017885 | View Revisions |
2017-06-24 15:50 | hokomoko | Note Added: 0017887 | |
2017-06-24 15:56 | Kloot | Note Added: 0017888 | |
2017-06-24 16:26 | hokomoko | Note Added: 0017890 | |
2017-06-24 20:41 | sprung | Note Added: 0017891 | |
2017-06-25 09:33 | silentwings | Note Added: 0017893 | |
2017-06-26 07:57 | Google_Frog | Note Added: 0017894 | |
2017-06-26 10:46 | Kloot | Note Added: 0017895 | |
2017-06-26 15:55 | Kloot | Note Edited: 0017895 | View Revisions |
2017-07-06 12:02 | ThinkSome | Note Added: 0017940 | |
2017-07-07 04:00 | Google_Frog | Note Added: 0017944 | |
2017-07-07 09:05 | gajop | Note Added: 0017945 | |
2017-07-07 10:13 | Google_Frog | Note Added: 0017947 | |
2017-07-07 12:01 | gajop | Note Added: 0017948 | |
2017-07-07 12:02 | gajop | Note Edited: 0017948 | View Revisions |
2017-07-09 16:13 | Google_Frog | Note Added: 0017976 | |
2017-07-14 09:01 | Sanguinario_Joe | Note Added: 0018028 | |
2017-07-14 13:21 | Sanguinario_Joe | Note Added: 0018033 | |
2017-07-16 14:17 | Google_Frog | File Added: zkPlatform.glRender.csv | |
2017-07-16 14:17 | Google_Frog | Note Added: 0018049 | |
2017-07-25 15:37 | Kloot | Assigned To | => Kloot |
2017-07-25 15:37 | Kloot | Status | new => closed |
2017-07-25 15:37 | Kloot | Resolution | open => no change required |
2017-07-25 15:37 | Kloot | Note Added: 0018124 |