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

[Stride] Custom present call #691

Merged
merged 4 commits into from
Feb 8, 2025

Conversation

tebjan
Copy link
Member

@tebjan tebjan commented Feb 5, 2025

PR Details

Description

This PR introduces the IPresentCallIntercept interface, which allows users to manage the present call of the GameWindowRenderer. This is useful where an alternative present method is required.

A use case is NVIDIA Quadro Sync, which has a dedicated Present method in NvApi that works with Quadro sync groups and sync barriers.

Additionally, this PR adds a hidden output pin to GameWindow and SceneWindow, outputting the GameWindowRenderer to set the present intercept and retrieve the swap chain used for the custom present.

Motivation and Context

This change is necessary to enable proper synchronization with NVIDIA Quadro Sync groups and sync barriers.

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation

@azeno
Copy link
Member

azeno commented Feb 7, 2025

How about changing the interface to void Present(GraphicsPresenter presenter) and passing the interceptor as input instead of output? You could now build your custom NvQuadroSyncPresentInterceptor node and connect it from the top to the RenderWindow or SceneWindow. It would feel a little more guided to me - getting the object I need to deal with passed to me, instead of having to know I need to take it from somewhere.

…nd adds an input pin for it to SceneWindow and removes GameWindowRenderer output pin
@tebjan tebjan force-pushed the feature/stride/custom-present-call branch from 13896fd to b994c8e Compare February 7, 2025 20:20
@tebjan
Copy link
Member Author

tebjan commented Feb 7, 2025

Thanks for the feedback, connecting the node at the top to an input pin works well, I've changed the structure accordingly.

@azeno azeno merged commit f65a5cb into vvvv:main Feb 8, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants