Repository navigation
DM_ITV_LATCH=1 (opt-in, not yet measured): hold present interval 2 while the game oscillates between 1 and 2 - #1701
Closed
oliverames wants to merge 1 commit into
Closed
oliverames wants to merge 1 commit into
oliverames wants to merge 1 commit into
Conversation
Contributor
Author
|
Device result, not fully tested: the interval flip-flop is a symptom, not the cause. Runs with |
…lates between 1 and 2 Off by default and not yet measured. Mario Kart World on an iPhone flips its present interval about 350 times in 20 s after a late frame, which shows the screen at alternating 16.7 / 33.3 ms periods. The latch holds interval 2 until the game has asked for 1 for DM_ITV_LATCH_MS (3000), so the screen runs one steady 30 fps.
2 of 4 tasks
Contributor
Author
|
Combined into #1713 with the other two pacing switches; same commit, same tests. Closing this one. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not fully tested; opt-in. Filed for review while the measurement is open.
What and why
Mario Kart World 1.8.0 (#1383's build) on a physical iPhone flips its present interval between 1 and 2 every few frames after late frames. Presentation follows each flip, so the screen alternates 16.7 and 33.3 ms periods, which looks like judder, and the display link follows each one too.
DM_ITV_LATCH=1holds interval 2 until the game has asked for 1 continuously forDM_ITV_LATCH_MS(default 3000 ms), so the screen runs one steady 30 fps instead. The cost to check: the game's own logic sees the interval it asked for and keeps its step while the screen runs slower.DM_PRESENT_INTERVAL=displayis the opposite approach (one frame per tick, ignoring the interval). Off by default: with the variable unset the code runs as before.Checked
hle_nvn.ccompiles on this base with a generated profile header (clang syntax-only);dm/tools/tests/test_docs.pypasses; the new switches are indocs/env_switches.tsvwith their meanings (env_switches.py --checkstill reportsDM_NVN_BC_ALIAS, which is missing from the table onmaintoo).scripts/regress.py check --games: not run: off by default, so every game runs as before without the variable.Front ends
None: no front end has to act on this.
Docs
docs/development.mdand the switches indocs/env_switches.tsvdmsh_chain.py --headerwas run anddm/gfx/nvn/dmsh_chain.his part of the change. Not applicable: no chain tool changed.