Skip to content

Commit 2edeb85

Browse files
committed
Port to wgpu-0.17
1 parent 9e9a04d commit 2edeb85

File tree

21 files changed

+749
-519
lines changed

21 files changed

+749
-519
lines changed

Cargo.lock

Lines changed: 663 additions & 461 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,26 +55,27 @@ log = "0.4"
5555
progress = "0.2"
5656
rand = "0.8"
5757
rayon = "1"
58-
ron = "0.6"
59-
rust-ini = "0.17"
58+
ron = "0.8"
59+
rust-ini = "0.19"
6060
serde = "1.0"
6161
serde_derive = "1.0"
6262
serde_scan = "0.4"
6363
# keep in sync with `lib/ffi/Cargo.toml`
64-
wgpu = { version = "0.13", features = [] }
64+
wgpu = { version = "0.17", features = [] }
6565
# binaries
66-
env_logger = "0.9"
66+
env_logger = "0.10"
6767
getopts = "0.2"
6868
obj = "0.10"
69-
png = "0.16"
70-
winit = "0.27"
69+
png = "0.17"
70+
winit = "0.28"
7171
# gui
72-
egui = "0.19"
73-
egui_winit_platform = "0.16"
74-
egui_wgpu_backend = "0.19"
72+
egui = "0.22"
73+
egui_winit_platform = "0.19"
74+
#egui_wgpu_backend = "0.24"
75+
egui_wgpu_backend = { git = "https://github.com/kvark/egui_wgpu_backend", branch = "wgpu-0.17" }
7576

7677
[dev-dependencies]
77-
naga = { version = "0.9", features = ["wgsl-in", "validate"] }
78+
naga = { version = "0.13", features = ["wgsl-in", "validate"] }
7879

7980
[dependencies.profiling]
8081
version = "1.0.1"

bin/boilerplate.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,19 @@ impl Harness {
5959
};
6060

6161
info!("Initializing the window");
62-
let instance = wgpu::Instance::new(settings.backend.to_wgpu());
62+
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
63+
backends: settings.backend.to_wgpu(),
64+
..Default::default()
65+
});
6366
let event_loop = EventLoop::new();
6467
let window = WindowBuilder::new()
6568
.with_title(options.title)
6669
.with_inner_size(winit::dpi::PhysicalSize::new(extent.width, extent.height))
6770
.with_resizable(true)
6871
.build(&event_loop)
6972
.unwrap();
70-
let surface = unsafe { instance.create_surface(&window) };
73+
let surface =
74+
unsafe { instance.create_surface(&window) }.expect("Unable to create surface.");
7175

7276
info!("Initializing the device");
7377
let adapter = task_pool
@@ -124,9 +128,11 @@ impl Harness {
124128
))
125129
.unwrap();
126130

127-
let surface_formats = surface.get_supported_formats(&adapter);
128-
let surface_modes = surface.get_supported_modes(&adapter);
129-
let present_mode = if surface_modes.contains(&wgpu::PresentMode::Mailbox) {
131+
let surface_caps = surface.get_capabilities(&adapter);
132+
let present_mode = if surface_caps
133+
.present_modes
134+
.contains(&wgpu::PresentMode::Mailbox)
135+
{
130136
wgpu::PresentMode::Mailbox
131137
} else {
132138
log::warn!("Mailbox present is not supported");
@@ -138,10 +144,12 @@ impl Harness {
138144
};
139145
let config = wgpu::SurfaceConfiguration {
140146
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
141-
format: surface_formats[0],
147+
format: surface_caps.formats[0],
142148
width: extent.width,
143149
height: extent.height,
144150
present_mode,
151+
alpha_mode: wgpu::CompositeAlphaMode::Auto,
152+
view_formats: Vec::new(),
145153
};
146154
surface.configure(&device, &config);
147155

@@ -163,6 +171,7 @@ impl Harness {
163171
dimension: wgpu::TextureDimension::D2,
164172
format: DEPTH_FORMAT,
165173
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
174+
view_formats: &[],
166175
})
167176
.create_view(&wgpu::TextureViewDescriptor::default());
168177

@@ -230,6 +239,8 @@ impl Harness {
230239
width: size.width,
231240
height: size.height,
232241
present_mode: win.present_mode,
242+
alpha_mode: wgpu::CompositeAlphaMode::Auto,
243+
view_formats: Vec::new(),
233244
};
234245
win.surface.configure(&gfx.device, &config);
235246
win.depth_target = gfx
@@ -242,6 +253,7 @@ impl Harness {
242253
dimension: wgpu::TextureDimension::D2,
243254
format: DEPTH_FORMAT,
244255
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
256+
view_formats: &[],
245257
})
246258
.create_view(&wgpu::TextureViewDescriptor::default());
247259
app.resize(&gfx.device, gfx.screen_size);

bin/convert/level_png.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub fn save(path: &Path, layers: LevelLayers, palette: &[u8]) {
3232
println!("\t\t{}...", mp.height);
3333
let file = File::create(path.with_file_name(mp.height)).unwrap();
3434
let mut encoder = png::Encoder::new(file, layers.size.0 as u32, layers.size.1 as u32);
35-
encoder.set_color(png::ColorType::RGB);
35+
encoder.set_color(png::ColorType::Rgb);
3636
data.clear();
3737
for ((&h0, &h1), &delta) in layers.het0.iter().zip(&layers.het1).zip(&layers.delta) {
3838
data.extend_from_slice(&[h0, h1, delta]);
@@ -79,16 +79,17 @@ pub fn load(path: &Path) -> LevelLayers {
7979
println!("\t\t{}...", mp.height);
8080
let file = File::open(path.with_file_name(mp.height)).unwrap();
8181
let decoder = png::Decoder::new(file);
82-
let (info, mut reader) = decoder.read_info().unwrap();
82+
let mut reader = decoder.read_info().unwrap();
83+
let info = reader.info();
8384
assert_eq!((info.width, info.height), mp.size);
8485
let stride = match info.color_type {
85-
png::ColorType::RGB => 3,
86-
png::ColorType::RGBA => 4,
86+
png::ColorType::Rgb => 3,
87+
png::ColorType::Rgba => 4,
8788
_ => panic!("non-RGB image provided"),
8889
};
8990
let mut data = vec![0u8; stride * (layers.size.0 as usize) * (layers.size.1 as usize)];
9091
assert_eq!(info.bit_depth, png::BitDepth::Eight);
91-
assert_eq!(info.buffer_size(), data.len());
92+
assert_eq!(reader.output_buffer_size(), data.len());
9293
reader.next_frame(&mut data).unwrap();
9394
for chunk in data.chunks(stride) {
9495
layers.het0.push(chunk[0]);
@@ -101,27 +102,29 @@ pub fn load(path: &Path) -> LevelLayers {
101102
let file = File::open(path.with_file_name(mp.material_lo)).unwrap();
102103
let mut decoder = png::Decoder::new(file);
103104
decoder.set_transformations(png::Transformations::empty());
104-
let (info, mut reader) = decoder.read_info().unwrap();
105+
let mut reader = decoder.read_info().unwrap();
106+
let info = reader.info();
105107
assert_eq!((info.width, info.height), mp.size);
106108
assert_eq!(info.bit_depth, png::BitDepth::Four);
107109
layers
108110
.mat0
109111
.resize(info.width as usize * info.height as usize / 2, 0);
110-
assert_eq!(info.buffer_size(), layers.mat0.len());
112+
assert_eq!(reader.output_buffer_size(), layers.mat0.len());
111113
reader.next_frame(&mut layers.mat0).unwrap();
112114
}
113115
{
114116
println!("\t\t{}...", mp.material_hi);
115117
let file = File::open(path.with_file_name(mp.material_hi)).unwrap();
116118
let mut decoder = png::Decoder::new(file);
117119
decoder.set_transformations(png::Transformations::empty());
118-
let (info, mut reader) = decoder.read_info().unwrap();
120+
let mut reader = decoder.read_info().unwrap();
121+
let info = reader.info();
119122
assert_eq!((info.width, info.height), mp.size);
120123
assert_eq!(info.bit_depth, png::BitDepth::Four);
121124
layers
122125
.mat1
123126
.resize(info.width as usize * info.height as usize / 2, 0);
124-
assert_eq!(info.buffer_size(), layers.mat1.len());
127+
assert_eq!(reader.output_buffer_size(), layers.mat1.len());
125128
reader.next_frame(&mut layers.mat1).unwrap();
126129
}
127130

bin/convert/main.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ fn main() {
186186
let data = fs_read(&src_path).unwrap();
187187
let file = File::create(&dst_path).unwrap();
188188
let mut encoder = png::Encoder::new(file, 0x100, 1);
189-
encoder.set_color(png::ColorType::RGB);
189+
encoder.set_color(png::ColorType::Rgb);
190190
encoder
191191
.write_header()
192192
.unwrap()
@@ -197,16 +197,17 @@ fn main() {
197197
println!("Converting PNG to palette...");
198198
let file = File::open(&src_path).unwrap();
199199
let decoder = png::Decoder::new(file);
200-
let (info, mut reader) = decoder.read_info().unwrap();
200+
let mut reader = decoder.read_info().unwrap();
201+
let info = reader.info();
201202
assert_eq!((info.width, info.height), (0x100, 1));
202203
let stride = match info.color_type {
203-
png::ColorType::RGB => 3,
204-
png::ColorType::RGBA => 4,
204+
png::ColorType::Rgb => 3,
205+
png::ColorType::Rgba => 4,
205206
_ => panic!("non-RGB image provided"),
206207
};
207208
let mut data = vec![0u8; stride * 0x100];
208209
assert_eq!(info.bit_depth, png::BitDepth::Eight);
209-
assert_eq!(info.buffer_size(), data.len());
210+
assert_eq!(reader.output_buffer_size(), data.len());
210211
reader.next_frame(&mut data).unwrap();
211212
let mut output = File::create(&dst_path).unwrap();
212213
for chunk in data.chunks(stride) {

lib/ffi/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ log = "0.4"
1616
env_logger = { version = "0.9", optional = true }
1717
futures = "0.3"
1818
cgmath = "0.18"
19-
ron = "0.6"
19+
ron = "0.8"
2020
slotmap = "1"
21-
wgpu = { version = "0.13", features = ["angle"] }
22-
hal = { package = "wgpu-hal", version = "0.13", features = ["gles"] }
21+
wgpu = { version = "0.17", features = ["angle"] }
22+
hal = { package = "wgpu-hal", version = "0.17", features = ["gles"] }
2323

2424
[target.'cfg(target_os = "android")'.dependencies]
25-
android_logger = { version = "0.11", optional = true }
25+
android_logger = { version = "0.13", optional = true }
2626
log = "0.4"
2727
log-panics = { version = "2" }

lib/ffi/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ fn crate_main_views(
176176
dimension: wgpu::TextureDimension::D2,
177177
format: wgpu::TextureFormat::R8Uint, //dummy
178178
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
179+
view_formats: &[],
179180
};
180181
let color_view = {
181182
let hal_texture_color =
@@ -224,7 +225,10 @@ pub extern "C" fn rv_init(desc: InitDescriptor) -> Option<ptr::NonNull<Context>>
224225
}
225226
.expect("GL adapter can't be initialized");
226227

227-
let instance = wgpu::Instance::new(wgpu::Backends::empty());
228+
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
229+
backends: wgpu::Backends::empty(),
230+
..Default::default()
231+
});
228232
let adapter = unsafe { instance.create_adapter_from_hal(exposed) };
229233
let adapter_limits = adapter.limits();
230234

lib/m3d/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ publish = false
99
[dependencies]
1010
byteorder = "1.0"
1111
log = "0.4"
12-
ron = "0.6"
12+
ron = "0.8"
1313
profiling = "1.0"
1414
serde = { version = "1.0", features = ["serde_derive"] }

res/shader/object.wgsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//!include body.inc globals.inc quat.inc shadow.inc
22

3-
let c_BodyColorId: u32 = 1u;
3+
const c_BodyColorId: u32 = 1u;
44

55
struct Storage {
66
bodies: array<Body>,

res/shader/shadow.inc.wgsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
@group(0) @binding(3) var t_Shadow: texture_depth_2d;
44
@group(0) @binding(4) var s_Shadow: sampler_comparison;
55

6-
let c_Ambient: f32 = 0.25;
6+
const c_Ambient: f32 = 0.25;
77

88
fn fetch_shadow(pos: vec3<f32>) -> f32 {
99
let flip_correction = vec2<f32>(1.0, -1.0);

0 commit comments

Comments
 (0)