-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
Add basic multimesh data needed for headless export to the Dummy rendering server #87390
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm but I do think we need to think if we want to do more here. Yes this fixes the issue with data being lost while we want to keep it because we're exporting, but it is an awful lot of data to potentially keep in memory when the headless server is used to host a multiplayer game (depending on the architecture used off course).
Possibly we could add a project setting for the dummy renderer "keep mesh data" that defaults to true, and can be turned off?
Also slightly off topic, but the editor actually has a few places where we also retrieve mesh data from the rendering server. As we're getting data from the GPU that produces a stall point as we need to wait for the GPU to finish everything scheduled and wait for the data to be retrieved. I've often wondered if it doesn't make sense to have an option to keep the data on the CPU instead of tossing it after transfering the data to the GPU. That should be an opt-in thing, maybe even on mesh level, but it could be worth thinking about. |
We cache it in the DummyRenderingServer right now (which is totally on the CPU)
We've been discussing with smix8 and reduz about having optional caching for when the mesh needs to be read-back regularly (I cced you on the thread) |
That sounds like a good idea to explore in general for the dummy renderer as mesh data is going to be the biggest culprit by far and it is currently always cached as well |
Thanks! |
I interpreted this as "let's merge this for now, but look into the suggestion in future". 🙃 |
Cherry-picked for 4.2.2. |
Fixes: #86396
Multimesh relies on storing and retrieving the buffer in the rendering server to function. So we need to have at least that information in the RenderingServer.
This PR adds the bare minimum amount of data to store and retrieve the multimesh buffer for export.