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

Document vsync/presentation-interval #76

Open
joreg opened this issue Nov 17, 2022 · 7 comments
Open

Document vsync/presentation-interval #76

joreg opened this issue Nov 17, 2022 · 7 comments
Assignees
Labels
enhancement New feature or request VL.Stride Wrapper for 3d game engine Stride
Milestone

Comments

@joreg
Copy link
Member

joreg commented Nov 17, 2022

https://learn.microsoft.com/en-us/windows/win32/direct3d9/d3dpresent

  • in overview patch
  • in pin tooltip
@gregsn
Copy link
Member

gregsn commented Nov 17, 2022

new suggestion:

  • show VSync pin on TextureWindow, RenderWindow, SceneWindow
  • Enable VSync on RenderWindow, SceneWindow
  • show runtime warning if VSync is on on more than one running window
  • make sure help patches have VSync turned off

@gregsn gregsn added the enhancement New feature or request label Nov 17, 2022
@tgd-git
Copy link

tgd-git commented Nov 18, 2022

maybe just show the warning next to perfmeter. thats where you look for stutters

@gregsn
Copy link
Member

gregsn commented Nov 30, 2022

yet another suggestion:

  • have an own enum, which somehow acknowledges that sometimes we have several windows that need to cooperate
    • No VSync
    • Wait For One Frame
    • Two
    • Three
    • Cooperative
  • Cooperative is our default

Cooperative means:

  • If all windows are cooperative, one of them gets picked to do the VSync automatically (-> no tearing).
  • If one window is on explicit wait (one, two, ..) this one gets picked as the one that waits. The other ones are not explicitly set to vsync by the user. Thus we can do whatever feels right. E.g. don't sync

@joreg
Copy link
Member Author

joreg commented Nov 30, 2022

or could it be just a global setting VSYNC on/off on the MainLoop node and the system makes sure max one renderer (even between skia and stride) has vsync set. and we could even get rid of the vsync inputs on renderers?

@bj-rn
Copy link
Contributor

bj-rn commented Nov 30, 2022

or could it be just a global setting VSYNC on/off on the MainLoop node and the system makes sure max one renderer (even between skia and stride) has vsync set. and we could even get rid of the vsync inputs on renderers?

There might be situations where you want to sync to a specific screen. How would that work?

@joreg
Copy link
Member Author

joreg commented Nov 30, 2022

@bj-rn please detail that situation

@joreg joreg self-assigned this Nov 30, 2022
@bj-rn
Copy link
Contributor

bj-rn commented Nov 30, 2022

For example the main output is some LED-screen and another output is a connected to a preview monitor. The timings of those two most likely differ and in that case one certainly wants to sync to the main output.

joreg referenced this issue in vvvv/VL.Stride Nov 30, 2022
@joreg joreg transferred this issue from vvvv/VL.Stride Mar 1, 2023
@joreg joreg added the VL.Stride Wrapper for 3d game engine Stride label Mar 1, 2023
@joreg joreg added this to the 5.0 milestone Mar 20, 2023
@joreg joreg modified the milestones: 5.0, 5.1 Apr 6, 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 VL.Stride Wrapper for 3d game engine Stride
Projects
None yet
Development

No branches or pull requests

4 participants