2025-08-07 19:55 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0005620Spring engineGeneralpublic2017-07-25 15:37
ReporterGoogle_Frog 
Assigned ToKloot 
PriorityhighSeveritymajorReproducibilityN/A
StatusclosedResolutionno change required 
Product Version103.0 +git 
Target VersionFixed in Version 
Summary0005620: Zero-K wil not use an engine that requires openGL 4.1
DescriptionThis 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.
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0017876

Kloot (developer)

Last edited: 2017-06-23 11:48

View 3 revisions

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.

~0017877

hokomoko (developer)

Last edited: 2017-06-23 15:49

View 2 revisions

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.

~0017880

abma (administrator)

> 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?

~0017881

Kloot (developer)

Last edited: 2017-06-24 00:48

View 2 revisions

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.

~0017882

gajop (developer)

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.

~0017883

Kloot (developer)

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.

~0017884

hokomoko (developer)

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.

~0017885

Kloot (developer)

Last edited: 2017-06-24 15:49

View 2 revisions

"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.

~0017886

hokomoko (developer)

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.

~0017887

hokomoko (developer)

Also https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGenVertexArrays.xhtml seems to claim it's since 3.0

~0017888

Kloot (developer)

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.

~0017890

hokomoko (developer)

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

~0017891

sprung (reporter)

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.

~0017893

silentwings (reporter)

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.

~0017894

Google_Frog (reporter)

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.

~0017895

Kloot (developer)

Last edited: 2017-06-26 15:55

View 2 revisions

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.

~0017940

ThinkSome (reporter)

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.

~0017944

Google_Frog (reporter)

Do you want Platform.gpu or Platform.glRenderer?

~0017945

gajop (developer)

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+.

~0017947

Google_Frog (reporter)

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.

~0017948

gajop (developer)

Last edited: 2017-07-07 12:02

View 2 revisions

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.

~0017976

Google_Frog (reporter)

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.

~0018028

Sanguinario_Joe (reporter)

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

~0018033

Sanguinario_Joe (reporter)

New point of view... 0005650

~0018049

Google_Frog (reporter)

I've attached glRenderer data from the last seven days.

~0018124

Kloot (developer)

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.
+Notes

-Issue History
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
+Issue History