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

[Enhancement] Upcoming GameScope Filtering Changes #838

Closed
6 tasks done
sonic2kk opened this issue Jun 16, 2023 · 7 comments
Closed
6 tasks done

[Enhancement] Upcoming GameScope Filtering Changes #838

sonic2kk opened this issue Jun 16, 2023 · 7 comments
Labels
enhancement New feature or request Initiative Issues detailing a significant set of features/enhancements

Comments

@sonic2kk
Copy link
Owner

sonic2kk commented Jun 16, 2023

System Information

  • SteamTinkerLaunch version: git
  • Distribution: Arch Linux

Feature Description

GameScope in git has changed how it takes upscaling and filtering arguments. The existing -Y, U, and -n flags for NIS, FSR and Integer Scaling respectively have been removed and replaced with the following (as noted on the Readme as of the latest commit at time of writing: ValveSoftware/gamescope@7a1fe2d):

  • -F <filter>, where <filter> can be linear, nearest, nis, fsr
  • -S <scale>, where <scale> can be auto, integer, fit, fill, stretch.

Since this is in git, some STL users may be affected. In future when this makes it into a stable release, this will affect all STL users making use of GameScope. That is, once those users update and a newer version is available to them (package managers, etc).


STL will need to update in the meanwhile to accommodate both the old and new usage, STL will need to make some changes:

  • Check the GameScope manpage and make some assumptions about the GameScope version used (if it has the new vs. old docs we can make assumptions about what syntax to use)
  • Update to accomodate the new syntax
  • Add support for the (new?) stretch option.

I am not sure of the depth required for these changes. I am hoping that the overhaul to GameScope (#744) will make this a bit smoother.

These changes will stay in a branch for a while to give these changes a chance to "settle" upstream, in case there are any changes in the meanwhile to account for.


I am opening this issue to remind myself that this change will be required ASAP. To test, I will test against builds of GameScope before and after the commit for this refactor.

TODO:

  • Refactor UI to use dropdowns for scaling and filtering options instead of checkboxes
  • Refactor code to allow -F for setting FSR, NIS, and Nearest Neighbor if the current GameScope help screen uses those options
  • Refactor code to allow -S for setting Integer scaling
  • Investigate support for new Filter option: linear (probably default so might not be needed)
  • Investigate support for new scale options: fit, fill, and stretch
  • Investigate support for auto scale (probably default so might not be needed)
@sonic2kk sonic2kk added the enhancement New feature or request label Jun 16, 2023
@sonic2kk
Copy link
Owner Author

This commit ValveSoftware/gamescope@789cfc9 is very interesting:

No window system, vr, drm, etc required.

Can be used to stream headlessly with Pipewire or screenshots, etc.

Can also just be used as a utility to run applications that need a GUI
or window envrionment despite just being an installer or something.

Particularly the last statement, this could be pretty nifty. We can add this option under the advanced settings.

@sonic2kk
Copy link
Owner Author

Headless option was added in #843.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Jun 25, 2023

Having thought about it some more, the UI will need to be entirely redone. We'll probably need a dropdown for scaler and filter type, to replace the checkboxes we have currently. These new options for scaler and filter mean that unlike before, we cannot use all the different scaler/filter types at once with different flags. The user can only use, for example, FSR or NIS, not both like they could when passing -U -Y.

We should still be able to accomodate both old and new users this way. The issue is that this will be a breaking change for users who are currently using filtering with GameScope, as they'll need to reconfigure their arguments on the menu. Maybe I should add a Defaults button for GameScope like we have for One-Time Run...

Having a dropdown for the options should simplify the process significantly. The way sharpness is passed remains unchanged (though we can probably remove the checks for --fsr-sharpness and --sharpness.

Overhauling the UI again is gonna be a bit of a pain, especially with GSARR shuffling. A bunch of lang strings can probably be removed too. This one will be a big oof and may be the last major "feature" I work on for a while.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Jun 25, 2023

Defaults button was added in #844. This should make it easier to reset existing GameScope configurations once the UI overhaul is implemented.

@sonic2kk
Copy link
Owner Author

The GameScope GUI is being refactored to use Combobox Entry fields for the new Filter/Scaler options. I chose this over regular Comboboxes in case GameScope updates to add new filters. Then we won't need to update the list of dropdowns with an STL version bump, a user can just enter the name of the filter/scaler.

@sonic2kk sonic2kk added the Initiative Issues detailing a significant set of features/enhancements label Jun 26, 2023
@sonic2kk
Copy link
Owner Author

sonic2kk commented Jun 26, 2023

This functionality is ready in #845, it is feature-complete. I am holding off on merging for now to update the wiki and to make sure there are no additional changes upstream. I'll probably merge in a week max.

The linear filter option and auto scale option were added in the dropdown, but none is the default (if the input fields are blank, we fall back to none as well). A user can still select linear and scale in the dropdown and it will get passed, but by default no option is passed.

Users can also enter any custom values if they want too. They might not always be recognised by GameScope, though.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Jul 2, 2023

#845 was merged, this can be closed.

@sonic2kk sonic2kk closed this as completed Jul 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Initiative Issues detailing a significant set of features/enhancements
Projects
None yet
Development

No branches or pull requests

1 participant