View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0005625 | Spring engine | Lua | public | 2017-06-29 14:56 | 2017-07-12 13:46 | ||||
Reporter | Google_Frog | ||||||||
Assigned To | Kloot | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | no change required | ||||||
Product Version | 103.0 +git | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0005625: 103.0.1-1050 widget:AllowDraw issue | ||||||||
Description | widget:AllowDraw allows for FPS limiting by forcing the engine to use the previous draw frame instead of redrawing the frame. It works in 103.0.1-1048-g97abd14. In 103.0.1-1050-g53fbce0 limiting FPS causes Spring to flicker as if it is sometimes drawing frames that were earlier than the most recent frame. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
Kloot (developer) 2017-06-29 15:12 Last edited: 2017-06-29 15:15 |
the commit at 1050 doesn't appear to be at all related to this, and 1049 just adds some asserts. check infolog. |
Google_Frog (reporter) 2017-06-29 15:37 |
I had settings issues and now think that it is caused by FSAALevel = 0. I don't know when the bug was introduced. |
Kloot (developer) 2017-06-29 15:53 Last edited: 2017-06-29 15:55 |
there's no flickering on my end with that setting so I'm filing this under "driver bug". your video also only seems to show it while the Steam popup is visible. |
Google_Frog (reporter) 2017-06-29 16:03 |
This ticket implies that flickering occurs for at least one other person: https://github.com/ZeroK-RTS/Chobby/issues/269 I will get some more people to test chobby with FFAALevel = 0. As a workaround I've made FSAALevel unable to be set to 0 with chobby without manual settings editing. |
hokomoko (developer) 2017-07-04 13:42 |
I had this flickering on many versions with an intel card. |
Kloot (developer) 2017-07-12 10:43 Last edited: 2017-07-12 10:45 |
This is due to bad interplay between the AllowDraw FPS regulator (which is ill-conceived and redundant with 104.0) and engine-enforced buffer swaps. Framerate should be controlled via vsync instead; setting VSync=N (where N != 0) will clamp FPS to display refresh-rate divided by N. Use this for the lobby, and offer users a trinary interval (-1/0/1) to switch to once in-game. Call Spring.SendCommands("vsync i") to enable a user's choice. |
hokomoko (developer) 2017-07-12 13:33 Last edited: 2017-07-12 13:34 |
This doesn't really solve this. 1) Refresh rate divided by N is bad for smooth GUI, you need to force draw if mouse moved (button highlights etc.). 2) AllowDraw was meant to reduce load during lobby. IIRC when I only swapped buffers if a draw happened, there were some crashes. |
Kloot (developer) 2017-07-12 13:39 Last edited: 2017-07-12 13:39 |
I'd say 30 or even 20fps (N=2 or N=3 for most displays) is enough for any lobby and reduces load plenty. Those crashes were the reason why I forced swaps by default regardless of draw. |
hokomoko (developer) 2017-07-12 13:45 Last edited: 2017-07-12 13:46 |
Dunno, IMO lower refresh rate were noticeable and obnoxious. It can probably be fixed engine-side or game-side by always drawing two frames (for triple buffer) after the last forced one. |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2017-06-29 14:56 | Google_Frog | New Issue | |
2017-06-29 14:56 | Google_Frog | File Added: AllowDrawIssue.mp4 | |
2017-06-29 15:12 | Kloot | Note Added: 0017910 | |
2017-06-29 15:15 | Kloot | Note Edited: 0017910 | View Revisions |
2017-06-29 15:37 | Google_Frog | Note Added: 0017911 | |
2017-06-29 15:53 | Kloot | Note Added: 0017912 | |
2017-06-29 15:55 | Kloot | Note Edited: 0017912 | View Revisions |
2017-06-29 16:03 | Google_Frog | Note Added: 0017913 | |
2017-07-04 13:42 | hokomoko | Note Added: 0017932 | |
2017-07-12 10:43 | Kloot | Assigned To | => Kloot |
2017-07-12 10:43 | Kloot | Status | new => closed |
2017-07-12 10:43 | Kloot | Resolution | open => no change required |
2017-07-12 10:43 | Kloot | Note Added: 0018010 | |
2017-07-12 10:45 | Kloot | Note Edited: 0018010 | View Revisions |
2017-07-12 13:33 | hokomoko | Note Added: 0018011 | |
2017-07-12 13:34 | hokomoko | Note Edited: 0018011 | View Revisions |
2017-07-12 13:39 | Kloot | Note Added: 0018012 | |
2017-07-12 13:39 | Kloot | Note Edited: 0018012 | View Revisions |
2017-07-12 13:45 | hokomoko | Note Added: 0018013 | |
2017-07-12 13:46 | hokomoko | Note Edited: 0018013 | View Revisions |