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

Multi-Monitor Support? #101

Closed
mgsim opened this issue Mar 22, 2019 · 10 comments
Closed

Multi-Monitor Support? #101

mgsim opened this issue Mar 22, 2019 · 10 comments

Comments

@mgsim
Copy link

mgsim commented Mar 22, 2019

What is the best way to set up rendering to multiple full-screen monitors using a single GPU adapter in The Forge? Do you have an example that uses multi-monitor?

@wolfgangfengel
Copy link
Contributor

Hey mgsim, what is your usage case? Obviously, you can plug two monitors in your GPU and you can run them ... but this is probably not what you are asking.

@boberfly
Copy link
Contributor

Hi @mgsim
I was able to use The-Forge with GLFW: https://www.glfw.org/ which does let you spawn multiple windows. From there I would associate each one with its own swapchain by passing the window handle to the descriptor struct and handle it much like you would with a native API from there. (GLFW lets you create these windows without OpenGL contexts, it works with any API that supports the native OS window handle). Alternatively SDL2 could be used.

@mgsim
Copy link
Author

mgsim commented Mar 22, 2019

@wolfgangfengel My particular use case is for rendering to a custom 3D stereoscope where each eye receives a full-screen render image from a different viewpoint. In addition I need to support even more windows/monitors for additional unrelated drawing or debug views with a free camera. I could use a distinct GPU adapter for each eye, but I'm particularly interested in the usage of The Forge API with multi-monitor where there is only one GPU available.

@boberfly Thank you for your comments. I am currently using an identical setup to you. I use GLFW for generating multiple OS windows with no context and use GLFW's native header to retrieve the native window handles to pass to The Forge. This works perfectly and I have multiple windows to which I can render, but I am looking for best practices regarding the usage of The Forge for rendering to these windows. I'm concerned with the most efficient way to render to multiple monitors regarding the usage of threads, single or multiple command queues, command lists, and descriptor heaps. I'd like to duplicate as few resources as possible.

@wolfgangfengel
Copy link
Contributor

We used The Forge for StarVR and I know we used it in other AR / VR environments. So I assume it is possible. I ask the guys who worked on those projects ... and get back to you.

@mgsim
Copy link
Author

mgsim commented Apr 2, 2019

@wolfgangfengel That's good news. I look forward to hearing your response. I think adding a multi-window/multi-monitor example to the unit tests would be immensely helpful too.

@mgsim
Copy link
Author

mgsim commented May 17, 2019

@wolfgangfengel Did the guys who worked on StarVR or the other AR / VR environments with The Forge get back to you with any best practices? I'm still interested in learning this. Thanks.

@mgsim
Copy link
Author

mgsim commented Jul 5, 2019

@wolfgangfengel Any forward progress on this issue? I'm still very interested. I'd be happy to set up a meeting to discuss this with you at SIGGRAPH in L.A. if you will be attending this year. Thanks.

@wolfgangfengel
Copy link
Contributor

I think we have now multi-monitor support in the new window example. Let me know if this is what you were looking for.

@wolfgangfengel
Copy link
Contributor

@mgsim can I close this issue?

@mgsim
Copy link
Author

mgsim commented May 23, 2021 via email

hanyangl5 pushed a commit to hyl5-org/The-Forge that referenced this issue Jul 14, 2024
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

No branches or pull requests

3 participants