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
@@ -186,8 +186,8 @@ impl UiRenderNode {
|
||||
for source in ®istry.sources()[self.primitives.len()..] {
|
||||
let render = (source.render)(device, queue);
|
||||
let data_layout = Self::data_layout(device, source.stride);
|
||||
let mut groups = vec![&self.shared_layout, &data_layout];
|
||||
groups.extend(render.layout());
|
||||
let mut groups = vec![Some(&self.shared_layout), Some(&data_layout)];
|
||||
groups.extend(render.layout().map(Some));
|
||||
let layout = device.create_pipeline_layout(&PipelineLayoutDescriptor {
|
||||
label: Some(source.label),
|
||||
bind_group_layouts: &groups,
|
||||
@@ -219,7 +219,7 @@ impl UiRenderNode {
|
||||
vertex: VertexState {
|
||||
module: &module,
|
||||
entry_point: Some("vs_main"),
|
||||
buffers: &[PrimitiveInstance::desc()],
|
||||
buffers: &[Some(PrimitiveInstance::desc())],
|
||||
compilation_options: Default::default(),
|
||||
},
|
||||
fragment: Some(FragmentState {
|
||||
|
||||
Reference in new issue
Block a user