Fix iced_wgpu device selection on Wasm
This commit is contained in:
parent
52b3f69e35
commit
020fb3c377
2 changed files with 20 additions and 15 deletions
|
|
@ -13,7 +13,7 @@ pub enum RedrawRequest {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use std::time::{Duration, Instant};
|
use crate::time::{Duration, Instant};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn ordering() {
|
fn ordering() {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ use crate::graphics::compositor;
|
||||||
use crate::graphics::{Error, Viewport};
|
use crate::graphics::{Error, Viewport};
|
||||||
use crate::{Backend, Primitive, Renderer, Settings};
|
use crate::{Backend, Primitive, Renderer, Settings};
|
||||||
|
|
||||||
use futures::stream::{self, StreamExt};
|
|
||||||
|
|
||||||
use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle};
|
use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle};
|
||||||
|
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|
@ -95,14 +93,17 @@ impl<Theme> Compositor<Theme> {
|
||||||
let limits =
|
let limits =
|
||||||
[wgpu::Limits::default(), wgpu::Limits::downlevel_defaults()];
|
[wgpu::Limits::default(), wgpu::Limits::downlevel_defaults()];
|
||||||
|
|
||||||
let limits = limits.into_iter().map(|limits| wgpu::Limits {
|
let mut limits = limits
|
||||||
max_bind_groups: 2,
|
.into_iter()
|
||||||
..limits
|
.map(|limits| wgpu::Limits {
|
||||||
});
|
max_bind_groups: 2,
|
||||||
|
..limits
|
||||||
|
})
|
||||||
|
.into_iter();
|
||||||
|
|
||||||
let (device, queue) = stream::iter(limits)
|
let (device, queue) = loop {
|
||||||
.filter_map(|limits| async {
|
if let Some(limits) = limits.next() {
|
||||||
adapter.request_device(
|
let device = adapter.request_device(
|
||||||
&wgpu::DeviceDescriptor {
|
&wgpu::DeviceDescriptor {
|
||||||
label: Some(
|
label: Some(
|
||||||
"iced_wgpu::window::compositor device descriptor",
|
"iced_wgpu::window::compositor device descriptor",
|
||||||
|
|
@ -111,11 +112,15 @@ impl<Theme> Compositor<Theme> {
|
||||||
limits,
|
limits,
|
||||||
},
|
},
|
||||||
None,
|
None,
|
||||||
).await.ok()
|
).await.ok();
|
||||||
})
|
|
||||||
.boxed()
|
if let Some(device) = device {
|
||||||
.next()
|
break Some(device);
|
||||||
.await?;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break None;
|
||||||
|
}?;
|
||||||
|
|
||||||
Some(Compositor {
|
Some(Compositor {
|
||||||
instance,
|
instance,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue