View Issue Details

IDProjectCategoryView StatusLast Update
0005620Spring engineGeneralpublic2017-07-25 15:37
ReporterGoogle_Frog Assigned ToKloot  
PriorityhighSeveritymajorReproducibilityN/A
Status closedResolutionno change required 
Product Version103.0 +git 
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.
Attached Files
zkOpenGlVersion.csv (Attachment missing)
Checked infolog.txt for Errors

Activities

Kloot

2017-06-23 11:45

developer   ~0017876

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

2017-06-23 15:47

developer   ~0017877

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

2017-06-23 18:59

administrator   ~0017880

> 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

2017-06-24 00:46

developer   ~0017881

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

2017-06-24 03:13

developer   ~0017882

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

2017-06-24 14:59

developer   ~0017883

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

2017-06-24 15:20

developer   ~0017884

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

2017-06-24 15:46

developer   ~0017885

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

2017-06-24 15:48

developer   ~0017886

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

2017-06-24 15:50

developer   ~0017887

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

Kloot

2017-06-24 15:56

developer   ~0017888

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

2017-06-24 16:26

developer   ~0017890

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

2017-06-24 20:41

reporter   ~0017891

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

2017-06-25 09:33

reporter   ~0017893

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

2017-06-26 07:57

reporter   ~0017894

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

2017-06-26 10:46

developer   ~0017895

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

2017-07-06 12:02

reporter   ~0017940

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

2017-07-07 04:00

reporter   ~0017944

Do you want Platform.gpu or Platform.glRenderer?

gajop

2017-07-07 09:05

developer   ~0017945

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

2017-07-07 10:13

reporter   ~0017947

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

2017-07-07 12:01

developer   ~0017948

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

2017-07-09 16:13

reporter   ~0017976

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

2017-07-14 09:01

reporter   ~0018028

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

2017-07-14 13:21

reporter   ~0018033

New point of view... 0005650

Google_Frog

2017-07-16 14:17

reporter   ~0018049

I've attached glRenderer data from the last seven days.
zkPlatform.glRender.csv (Attachment missing)

Kloot

2017-07-25 15:37

developer   ~0018124

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.

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
2017-06-23 11:48 Kloot Note Edited: 0017876
2017-06-23 15:47 hokomoko Note Added: 0017877
2017-06-23 15:49 hokomoko Note Edited: 0017877
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
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
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
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
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