gfx-rs / wgpu-rs

Rust bindings to wgpu native library
https://wgpu.rs
Mozilla Public License 2.0
1.69k stars 186 forks source link

WIP: OpenXR integration #910

Closed blaind closed 3 years ago

blaind commented 3 years ago

I've made a proof-of-concept for OpenXR rendering on Bevy engine, using wgpu & underlying stack. See https://github.com/blaind/xrbevy

The code in this pull request is not even close to merge-able, but I thought its good idea to open it for further discussion.

See also https://github.com/gfx-rs/gfx/pull/3761 and https://github.com/gfx-rs/wgpu/pull/1387

For architecture of the pull request, see https://github.com/blaind/xrbevy/blob/main/docs/architecture.md (evolving document)

lachlansneff commented 3 years ago

Fantastic! OpenXR support for wgpu-rs is something I really would like to see.

I do wonder if it could be implemented by instead exposing internal WebGPU, Vulkan, DX12, etc primitives in wgpu-rs through platform dependent traits, and then having an wgpu-openxr crate that uses those.

blaind commented 3 years ago

Fantastic! OpenXR support for wgpu-rs is something I really would like to see.

I do wonder if it could be implemented by instead exposing internal WebGPU, Vulkan, DX12, etc primitives in wgpu-rs through platform dependent traits, and then having an wgpu-openxr crate that uses those.

For context, I've updated the architecture document. There's quite a bit of different things going on (i/o, swapchain, device handling, etc.) so its a bit of puzzle to find the right places in ecosystem for each. Openxr itself supports vulkan and opengl at least.

kvark commented 3 years ago

Project moved to wgpu