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

Remoting layer #7

Closed
kvark opened this issue Sep 18, 2018 · 4 comments
Closed

Remoting layer #7

kvark opened this issue Sep 18, 2018 · 4 comments
Assignees
Labels
type: enhancement New feature or request

Comments

@kvark
Copy link
Member

kvark commented Sep 18, 2018

In order for this project to be used in Gecko we need to support the fact that WebGPU API bindings are on the content/script process, while the actual graphics context is on the GPU process.

Here comes the remoting layer. It's basically a native C-API library with same (or close) interface that routes the WebGPU calls across an IPC barrier. We may need multiple channels maintained simultaneously (Web worker communicating with the command pool on the GPU side when recording commands), but we can start with a single one (aka Google's "wire").

@kvark kvark added the type: enhancement New feature or request label Sep 18, 2018
@grovesNL
Copy link
Collaborator

What would the remoting layer need to contain to support this? Does wgpu-native need to be aware whether IPC is being used?

@kvark
Copy link
Member Author

kvark commented Sep 18, 2018

No, the native part doesn't need to know about remoting (I hope!).
We can start it by just sending messages across ipc_channel. One of the first steps would be to send over whole passes instead of individual commands.

@kvark kvark self-assigned this Feb 14, 2019
@kvark
Copy link
Member Author

kvark commented Feb 14, 2019

(copied from gitter) The way I see it working is:

  • wgpu-remote will create client and server parts, linked by an actual IPC channel (or multiple of them - up to implementation details)
  • the client side will expose C-API entry points to be called by Gecko bindings (on script/content side). These can actually match the APIs we expose to native, which is kinda weirdly need but not required.
  • the server side will listen for IPC and do actual calls into wgpu-native

@kvark kvark pinned this issue Feb 27, 2019
@kvark kvark unpinned this issue Mar 20, 2019
@kvark
Copy link
Member Author

kvark commented May 10, 2019

The infrastructure is there. It's up for discussion and changes, but it's no longer in the theoretical stage.

@kvark kvark closed this as completed May 10, 2019
mitchmindtree pushed a commit to mitchmindtree/wgpu that referenced this issue Feb 23, 2020
89: Adapter::get_info r=kvark a=paulkernfeld

This more or less addresses gfx-rs#7.

If the example is too trivial, I'm happy to remove it.

Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
kvark pushed a commit to kvark/wgpu that referenced this issue Jun 3, 2021
89: Adapter::get_info r=kvark a=paulkernfeld

This more or less addresses gfx-rs#7.

If the example is too trivial, I'm happy to remove it.

Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
victorvde pushed a commit to victorvde/wgpu that referenced this issue Apr 23, 2023
cwfitzgerald pushed a commit that referenced this issue Oct 26, 2023
7: Add missing cargo metadata for the release r=msiglreith a=kvark



Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
RandyMcMillan pushed a commit to RandyMcMillan/wgpu that referenced this issue Jun 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants