View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0005597 | Spring engine | General | public | 2017-06-04 12:39 | 2017-06-13 20:59 | ||||
Reporter | Google_Frog | ||||||||
Assigned To | Kloot | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | 103.0 +git | ||||||||
Target Version | Fixed in Version | 103.0 +git | |||||||
Summary | 0005597: 103.0.1-1023 A popup appears for users with low GPU memory | ||||||||
Description | It looks like this: http://imgur.com/PyHY7Yd The engine should not be creating a popup every time the game is run. Warning people about their hardware is a UI task and needs to be flexible. I have someone claiming that Spring is fine with 128MB of GPU memory and the right settings. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
Google_Frog (reporter) 2017-06-04 12:56 |
Upon checking debug mode they actually have 512MB. |
Kloot (developer) 2017-06-04 21:48 |
"someone claiming that Spring is fine with 128MB of GPU memory and the right settings" players are free to make any claim whatsoever, but the engine really isn't (ZK's preloaded model textures alone require almost double that). this popup is a disclaimer against CTD's caused by games running out of GPU memory on low-end hardware, as happened in https://github.com/ZeroK-RTS/CrashReports/issues/1232 and many other cases. |
hokomoko (developer) 2017-06-04 22:33 |
I agree with GF on this one - this warning is not good. Spring should be able to make "thinner" games as well. If we can make correct error pop ups on GPU OOM it would be far better (probably not really possible?) |
Kloot (developer) 2017-06-04 22:40 |
not really, no. gpu::bad_alloc doesn't exist, just cold hard driver crashes. |
hokomoko (developer) 2017-06-04 23:50 |
I wonder what we'll find if we try to check gpu use after said crash. Even if not, it should be possible to store the GPU mem usage once per frame and if you had a crash when it's >90% full, do the pop up. |
Kloot (developer) 2017-06-05 00:38 |
that assumes the engine manages to even show the popup after a crash. as many of ZK's reports show, CTD's without a trace or any semblance of orderly shutdown are common so the user won't have a clue. |
hokomoko (developer) 2017-06-05 00:49 |
Well, the fact that we can't do what's needed doesn't mean we should do what's harmful. |
Kloot (developer) 2017-06-05 01:16 Last edited: 2017-06-05 01:19 |
what in your world makes a preemptive empirically-based *warning* harmful to you? |
hokomoko (developer) 2017-06-05 01:18 |
It's annoying users. Annoyed users don't play. I believe False positives are more harmful than false negatives. |
Kloot (developer) 2017-06-05 01:21 Last edited: 2017-06-05 01:23 |
except that here we have many documented *true* positives. crashes annoy users. crashing users especially do not play. |
Google_Frog (reporter) 2017-06-05 07:37 |
We previously didn't have any way to detect false positives. Now we do, but only for those particularly vocal in chat: "<Fealthas> Oh no! <Fealthas> My gpu has less than 1 GB of memory <Fealthas> what shall I do?" "<Firepluk> wtf?! <Firepluk> spring just said me that my system has LESS than 1 GB of memory" Firepluk initially made the report and I knew they had messed with settings to get good FPS. I had no idea about Fealthas, he never indicated having any issues. I think it is very likely that Firepluk has 512MB of gpu memory and that they don't have problems playing ZK. I know this from multiple times that they have asked me about engine and widget settings that may help for poor gpus. They regularly play large games, with decent CPU in /info, and if performance was poor they would be whinging. This is besides the point though. When the message encounters a true positive what is it supposed to achieve? What is the goal here? Is the aim to prevent them from attempting to try to run Spring? Surely, if they actually regularly crash, the crash will prevent them from playing. I doubt they will find much consolation in the fact that a message popped up and warned them this might happen. I don't know how many would even remember the message as it looks like the type of annoying message that people instinctively click through and it could have appeared an hour ago. It is bad UI design. This popup told me that you think that less than 1GB of memory deserves minimal settings so I did this: https://github.com/ZeroK-RTS/Chobby/commit/bb4dc56357a82426566fe65f48ddc43edaecd6fe#diff-cdf0536da4e28065e8dd44e89602ed53R741 |
gajop (developer) 2017-06-05 07:55 |
Engine shouldn't produce (especially not force) any such UI. Let game devs decide what gets displayed. If you think these are common problems, please communicate them instead. I'd much rather engine work be spent towards providing us information on how "good" GPU/system rendering capabilities are, as I don't think memory itself is enough. That would allow for "Autodetect settings" to be created for games. |
hokomoko (developer) 2017-06-13 17:05 |
@Kloot I regard this issue as very important and consider a popup more detrimental than helpful for the reasons stated above. Unless you are adamant that it should stay I will move this message to be a log line next week. |
jK (developer) 2017-06-13 20:03 |
| not really, no. gpu::bad_alloc doesn't exist, just cold hard driver crashes. glGetError() == GL_OUT_OF_MEMORY ? |
jK (developer) 2017-06-13 20:04 |
also there is AGP memory, so 128MB cards got access to like 500MB |
Kloot (developer) 2017-06-13 20:05 Last edited: 2017-06-13 20:19 |
First, allowing the vocal minority to influence policy is almost never a good idea. Second, this level of objection over a popup is unbelievable to me. 1GB became the standard even for low-end HW many years ago. Users should not *ever* run the engine with less, memory size along with driver robustness is a massive factor in its stability. Time and again this has been proven, not to mention the "let game devs decide" approach is *way* too fragile and undermines a lot of the work I have put in to improve it. I also do not feel at all obligated to enable a downgraded "thin" Spring (a line of thinking which limits the kind of assumptions that can be safely made in code and has held it back for far too long already) while in practice the burden of dealing with endless user graphical issues falls to me anyway because nobody else is left or willing or able to do it. Let me reiterate: aiming to include the extreme low-end and bending over backwards not to annoy anyone stuck there is *DETRIMENTAL TO DEVELOPMENT* in the long run, much like the forced support for ancient Intels has been. I consider that more pressing, more urgent, more absolutely critical than whatever the cost of "bad UI design" is. The popup can go, but not without making GL4 the minimum requirement. |
Kloot (developer) 2017-06-13 20:18 |
"glGetError() == GL_OUT_OF_MEMORY ?" 1) doesn't always get set, if a driver did this reliably it could also decide not to crash 2) needs to be spammed all over the codebase because almost any function can cause it 3) drivers will typically defer memallocs (e.g. glBufferData) so the link between call and OOM is lost "also there is AGP memory, so 128MB cards got access to like 500MB" such cards suck to begin with and they eat into the address space. |
hokomoko (developer) 2017-06-13 20:21 |
check glGetError() == GL_OUT_OF_MEMORY in the crashhandler And yes, we have users with cards that suck |
Kloot (developer) 2017-06-13 20:59 |
no shit. alas, I'm not going spend time worrying about them or pollute crashhandler with GL crap. |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2017-06-04 12:39 | Google_Frog | New Issue | |
2017-06-04 12:56 | Google_Frog | Note Added: 0017776 | |
2017-06-04 21:48 | Kloot | Note Added: 0017779 | |
2017-06-04 22:33 | hokomoko | Note Added: 0017781 | |
2017-06-04 22:40 | Kloot | Note Added: 0017782 | |
2017-06-04 23:50 | hokomoko | Note Added: 0017784 | |
2017-06-05 00:38 | Kloot | Note Added: 0017785 | |
2017-06-05 00:49 | hokomoko | Note Added: 0017786 | |
2017-06-05 01:16 | Kloot | Note Added: 0017787 | |
2017-06-05 01:18 | hokomoko | Note Added: 0017788 | |
2017-06-05 01:19 | Kloot | Note Edited: 0017787 | View Revisions |
2017-06-05 01:21 | Kloot | Note Added: 0017789 | |
2017-06-05 01:23 | Kloot | Note Edited: 0017789 | View Revisions |
2017-06-05 07:37 | Google_Frog | Note Added: 0017790 | |
2017-06-05 07:55 | gajop | Note Added: 0017792 | |
2017-06-13 17:05 | hokomoko | Note Added: 0017838 | |
2017-06-13 20:03 | jK | Note Added: 0017839 | |
2017-06-13 20:04 | jK | Note Added: 0017840 | |
2017-06-13 20:05 | Kloot | Note Added: 0017841 | |
2017-06-13 20:18 | Kloot | Note Added: 0017842 | |
2017-06-13 20:19 | Kloot | Note Edited: 0017841 | View Revisions |
2017-06-13 20:21 | hokomoko | Note Added: 0017843 | |
2017-06-13 20:59 | Kloot | Assigned To | => Kloot |
2017-06-13 20:59 | Kloot | Status | new => resolved |
2017-06-13 20:59 | Kloot | Resolution | open => fixed |
2017-06-13 20:59 | Kloot | Fixed in Version | => 103.0 +git |
2017-06-13 20:59 | Kloot | Note Added: 0017844 |