Skip to content

gpui_interop 0.2.0

Latest

Choose a tag to compare

@Vanuan Vanuan released this 22 Oct 09:42

A bite-gpui 1.25 upgrade. The public wgpu types move to 30, so this is a minor release.

Breaking

  • The wgpu types in the public API — Adapter::wgpu, WgpuSurface and WgpuSharedBuffer — are now wgpu 30's. A producer still on wgpu 29 must upgrade before it can hand this crate its device.

Changed

  • Built against bite-gpui 1.25.202 (was 1.24.401), and the workspace follows the core to wgpu 30.0.1.
  • The Bevy producer moved to Bevy 0.20 (bevy_render 0.20), the release that uses wgpu 30, so the example still shares one wgpu with the window renderer.
  • wgpu 30's create_texture_from_hal now takes the wrapped texture's initial state; an imported dma-buf image is UNINITIALIZED, as in the core's own importer.
  • wgpu 30's vertex layout list is a list of Options; the hand-written pipeline in interop_wgpu follows it.
  • The Windows cross-device test no longer needs the request_windowing workaround: bite-gpui 1.24.401 attached the platform's Direct3D devices lazily in open_window (bite-gpui/bite-gpui#13), and the test now exercises that path.

Verified

  • The full headless suite: 34 tests, including the dma-buf import + pixel read-back, the shared-buffer ring's slow-frame test, the guest worker-thread hand-off, and the input gateway.
  • Windows CI runs the hidden-window Direct3D 12 → Direct3D 11 cross-device test.
  • Windowed runtime on an Optimus laptop: Bevy 0.20 on the window device (same-device and dma-buf --transfer paths) at ~38 fps, probe centre pixel non-zero.
  • cargo publish --dry-run with and without gpui,wgpu,guest, against the published 1.25.202 packages.

Install

gpui_interop = { version = "0.2", features = ["gpui", "wgpu"] }

Docs: https://docs.rs/gpui_interop/0.2.0
Changelog: https://github.com/bite-gpui/gpui_interop/blob/main/CHANGELOG.md
Full diff: v0.1.3...v0.2.0