Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallel pause images comparison #234

Open
Avasam opened this issue May 1, 2023 · 0 comments
Open

Parallel pause images comparison #234

Avasam opened this issue May 1, 2023 · 0 comments
Labels
enhancement New feature or enhancement request

Comments

@Avasam
Copy link
Collaborator

Avasam commented May 1, 2023

Is your feature request related to a problem? Please describe.
A lot of people (myself included) would like to be able to use AutoSplit to estimate load removal during runs. (see #139 (comment), #232 and many messages on Discord)
I think this can be included before a complete rewrite for parallel split images (#36)

Describe the solution you'd like
I'd like to scope this feature separately from the main comparison loop as much as possible. Both to reduce potential breakage (#216) and reduce the added complexity as much as possible.

  • The user would specify a special "pause images" folder (just like the splits folder)
  • Support the comparison method flags
    Option A:
  • Only the {p} (pause) and {b} (below) flags would be considered
  • Maybe flag some images as "pause", some as "unpause" and AutoSplit tracks which state it's in? This may help with more complex cases
    Option B:
  • No flags needed, just hit the pause toggle whenever any image is matched, or all are unmatched
    • This is exactly like Unload. It makes sense to not do more than current automated post-run tools can do anyway.

Performance concerns:

  • We NEED to make sure we're re-using the frame obtained from the capture method.
  • The whole load detection feature obviously will run in parallel
  • How many images can we compare in parallel? Let the user decide? Can we use multiple CPU cores? (Improve asynchronous operations / Use observer pattern #219)
    • Most of the time, this will be a no-match, because the runner isn't in a loading screen (and that's when we need the most performance for other splits), so comparing sequentially to stop early on a match wouldn't help.

Describe alternatives you've considered
Alternative 1: Run 2 instances of AutoSplit with different images folders
Alternative 2: Interleave load images with the {p} (pause) and {bp} (below + pause) flags. But this makes it impossible to loop.

Additional context
For post-run or even for leaderboard load removals, I'd instead recommend a tool that can be re-run by verifiers as many times as they want in a robust manner. Even if AutoSplit supported it. See https://github.com/milankarman/Unload

@Avasam Avasam added the enhancement New feature or enhancement request label May 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or enhancement request
Projects
None yet
Development

No branches or pull requests

1 participant