View Issue Details
| 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 | ||||
| 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. | ||||
| Attached Files | |||||
| Checked infolog.txt for Errors | |||||
|
|
the commit at 1050 doesn't appear to be at all related to this, and 1049 just adds some asserts. check infolog. |
|
|
I had settings issues and now think that it is caused by FSAALevel = 0. I don't know when the bug was introduced. |
|
|
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. |
|
|
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. |
|
|
I had this flickering on many versions with an intel card. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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 | |
| 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 | |
| 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 | |
| 2017-07-12 13:33 | hokomoko | Note Added: 0018011 | |
| 2017-07-12 13:34 | hokomoko | Note Edited: 0018011 | |
| 2017-07-12 13:39 | Kloot | Note Added: 0018012 | |
| 2017-07-12 13:39 | Kloot | Note Edited: 0018012 | |
| 2017-07-12 13:45 | hokomoko | Note Added: 0018013 | |
| 2017-07-12 13:46 | hokomoko | Note Edited: 0018013 |