Build on wgpu 30
Two majors, and the renderer is under everything else that is left to extract, so it goes before the slices that would otherwise be written twice. `image` 0.25.6 -> 0.25.10 rides along; `winit` stays on 0.30.12, since 0.31 is only a prerelease. What the API asked for: - An instance now takes the display it will present on, and GLES on Wayland needs it -- so the window the surface is made from is handed over with it. - `get_current_texture` returns a `CurrentSurfaceTexture` rather than a `Result`, which replaces an `unwrap` that would have panicked on a resize or an occluded window: reconfigure when the surface is outdated, lost or suboptimal, and skip the frame when there is nothing to draw into. - Presenting moved to the queue, after `pre_present_notify` as before. - Bind group layouts and vertex buffer layouts are sparse now, so a pipeline states `Some(layout)` per slot. Verified with the three render checks and `tests/draw_cost.rs`: identical pictures, and 33.6/167/587/2855 us per frame at 8/64/256/1024 layers against 33.3/161/588/2903 on wgpu 28. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b234497d21
commit
0a5eb2d984
5 files changed
+237
-241
No files matched your search
+4
-3
@@ -37,13 +37,13 @@ const BATCHES: u32 = 8;
|
||||
fn gpu() -> Option<(Device, Queue)> {
|
||||
// Probed rather than assumed: this machine's Vulkan device comes and goes,
|
||||
// and GL is what is left when it is gone.
|
||||
let all = Instance::new(&InstanceDescriptor::default());
|
||||
let all = Instance::new(InstanceDescriptor::new_without_display_handle());
|
||||
let instance = match pollster::block_on(all.request_adapter(&RequestAdapterOptions::default()))
|
||||
{
|
||||
Ok(_) => all,
|
||||
Err(_) => Instance::new(&InstanceDescriptor {
|
||||
Err(_) => Instance::new(InstanceDescriptor {
|
||||
backends: Backends::GL,
|
||||
..Default::default()
|
||||
..InstanceDescriptor::new_without_display_handle()
|
||||
}),
|
||||
};
|
||||
// Leaked rather than dropped: see the note at the top of the file.
|
||||
@@ -58,6 +58,7 @@ fn config(format: TextureFormat) -> SurfaceConfiguration {
|
||||
SurfaceConfiguration {
|
||||
usage: TextureUsages::RENDER_ATTACHMENT,
|
||||
format,
|
||||
color_space: SurfaceColorSpace::Auto,
|
||||
width: SIZE,
|
||||
height: SIZE,
|
||||
present_mode: PresentMode::Fifo,
|
||||
|
||||
Reference in new issue
Block a user