Skip to content

Commit afaf4ad

Browse files
committed
update for wgpu 0.8 (#1959)
Changes to get Bevy to compile with wgpu master. With this, on a Mac: * 2d examples look fine * ~~3d examples crash with an error specific to metal about a compilation error~~ * 3d examples work fine after enabling feature `wgpu/cross` Feature `wgpu/cross` seems to be needed only on some platforms, not sure how to know which. It was introduced in gfx-rs/wgpu-rs#826
1 parent b399a37 commit afaf4ad

File tree

25 files changed

+556
-521
lines changed

25 files changed

+556
-521
lines changed

Cargo.toml

-3
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,6 @@ bevy_ci_testing = ["bevy_internal/bevy_ci_testing"]
8282
bevy_dylib = {path = "crates/bevy_dylib", version = "0.5.0", default-features = false, optional = true}
8383
bevy_internal = {path = "crates/bevy_internal", version = "0.5.0", default-features = false}
8484

85-
[target.'cfg(target_arch = "wasm32")'.dependencies]
86-
syn = "=1.0.65"
87-
8885
[dev-dependencies]
8986
anyhow = "1.0"
9087
rand = "0.8.0"

crates/bevy_gltf/src/loader.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -116,35 +116,35 @@ async fn load_gltf<'a, 'b>(
116116

117117
if let Some(vertex_attribute) = reader
118118
.read_positions()
119-
.map(|v| VertexAttributeValues::Float3(v.collect()))
119+
.map(|v| VertexAttributeValues::Float32x3(v.collect()))
120120
{
121121
mesh.set_attribute(Mesh::ATTRIBUTE_POSITION, vertex_attribute);
122122
}
123123

124124
if let Some(vertex_attribute) = reader
125125
.read_normals()
126-
.map(|v| VertexAttributeValues::Float3(v.collect()))
126+
.map(|v| VertexAttributeValues::Float32x3(v.collect()))
127127
{
128128
mesh.set_attribute(Mesh::ATTRIBUTE_NORMAL, vertex_attribute);
129129
}
130130

131131
if let Some(vertex_attribute) = reader
132132
.read_tangents()
133-
.map(|v| VertexAttributeValues::Float4(v.collect()))
133+
.map(|v| VertexAttributeValues::Float32x4(v.collect()))
134134
{
135135
mesh.set_attribute(Mesh::ATTRIBUTE_TANGENT, vertex_attribute);
136136
}
137137

138138
if let Some(vertex_attribute) = reader
139139
.read_tex_coords(0)
140-
.map(|v| VertexAttributeValues::Float2(v.into_f32().collect()))
140+
.map(|v| VertexAttributeValues::Float32x2(v.into_f32().collect()))
141141
{
142142
mesh.set_attribute(Mesh::ATTRIBUTE_UV_0, vertex_attribute);
143143
}
144144

145145
if let Some(vertex_attribute) = reader
146146
.read_colors(0)
147-
.map(|v| VertexAttributeValues::Float4(v.into_rgba_f32().collect()))
147+
.map(|v| VertexAttributeValues::Float32x4(v.into_rgba_f32().collect()))
148148
{
149149
mesh.set_attribute(Mesh::ATTRIBUTE_COLOR, vertex_attribute);
150150
}

crates/bevy_pbr/src/render_graph/pbr_pipeline/mod.rs

+15-13
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ use bevy_asset::{Assets, HandleUntyped};
22
use bevy_reflect::TypeUuid;
33
use bevy_render::{
44
pipeline::{
5-
BlendFactor, BlendOperation, BlendState, ColorTargetState, ColorWrite, CompareFunction,
6-
DepthBiasState, DepthStencilState, PipelineDescriptor, StencilFaceState, StencilState,
5+
BlendComponent, BlendFactor, BlendOperation, BlendState, ColorTargetState, ColorWrite,
6+
CompareFunction, DepthBiasState, DepthStencilState, PipelineDescriptor, StencilFaceState,
7+
StencilState,
78
},
89
shader::{Shader, ShaderStage, ShaderStages},
910
texture::TextureFormat,
@@ -29,20 +30,21 @@ pub(crate) fn build_pbr_pipeline(shaders: &mut Assets<Shader>) -> PipelineDescri
2930
slope_scale: 0.0,
3031
clamp: 0.0,
3132
},
32-
clamp_depth: false,
3333
}),
3434
color_target_states: vec![ColorTargetState {
3535
format: TextureFormat::default(),
36-
color_blend: BlendState {
37-
src_factor: BlendFactor::SrcAlpha,
38-
dst_factor: BlendFactor::OneMinusSrcAlpha,
39-
operation: BlendOperation::Add,
40-
},
41-
alpha_blend: BlendState {
42-
src_factor: BlendFactor::One,
43-
dst_factor: BlendFactor::One,
44-
operation: BlendOperation::Add,
45-
},
36+
blend: Some(BlendState {
37+
color: BlendComponent {
38+
src_factor: BlendFactor::SrcAlpha,
39+
dst_factor: BlendFactor::OneMinusSrcAlpha,
40+
operation: BlendOperation::Add,
41+
},
42+
alpha: BlendComponent {
43+
src_factor: BlendFactor::One,
44+
dst_factor: BlendFactor::One,
45+
operation: BlendOperation::Add,
46+
},
47+
}),
4648
write_mask: ColorWrite::ALL,
4749
}],
4850
..PipelineDescriptor::new(ShaderStages {

crates/bevy_render/src/mesh/mesh.rs

+141-141
Large diffs are not rendered by default.

crates/bevy_render/src/mesh/mesh/conversions.rs

+43-43
Original file line numberDiff line numberDiff line change
@@ -50,79 +50,79 @@ impl FromVertexAttributeError {
5050

5151
impl From<Vec<f32>> for VertexAttributeValues {
5252
fn from(vec: Vec<f32>) -> Self {
53-
VertexAttributeValues::Float(vec)
53+
VertexAttributeValues::Float32(vec)
5454
}
5555
}
5656

5757
impl From<Vec<i32>> for VertexAttributeValues {
5858
fn from(vec: Vec<i32>) -> Self {
59-
VertexAttributeValues::Int(vec)
59+
VertexAttributeValues::Sint32(vec)
6060
}
6161
}
6262

6363
impl From<Vec<u32>> for VertexAttributeValues {
6464
fn from(vec: Vec<u32>) -> Self {
65-
VertexAttributeValues::Uint(vec)
65+
VertexAttributeValues::Uint32(vec)
6666
}
6767
}
6868

6969
impl From<Vec<[f32; 2]>> for VertexAttributeValues {
7070
fn from(vec: Vec<[f32; 2]>) -> Self {
71-
VertexAttributeValues::Float2(vec)
71+
VertexAttributeValues::Float32x2(vec)
7272
}
7373
}
7474

7575
impl From<Vec<[i32; 2]>> for VertexAttributeValues {
7676
fn from(vec: Vec<[i32; 2]>) -> Self {
77-
VertexAttributeValues::Int2(vec)
77+
VertexAttributeValues::Sint32x2(vec)
7878
}
7979
}
8080

8181
impl From<Vec<[u32; 2]>> for VertexAttributeValues {
8282
fn from(vec: Vec<[u32; 2]>) -> Self {
83-
VertexAttributeValues::Uint2(vec)
83+
VertexAttributeValues::Uint32x2(vec)
8484
}
8585
}
8686

8787
impl From<Vec<[f32; 3]>> for VertexAttributeValues {
8888
fn from(vec: Vec<[f32; 3]>) -> Self {
89-
VertexAttributeValues::Float3(vec)
89+
VertexAttributeValues::Float32x3(vec)
9090
}
9191
}
9292

9393
impl From<Vec<[i32; 3]>> for VertexAttributeValues {
9494
fn from(vec: Vec<[i32; 3]>) -> Self {
95-
VertexAttributeValues::Int3(vec)
95+
VertexAttributeValues::Sint32x3(vec)
9696
}
9797
}
9898

9999
impl From<Vec<[u32; 3]>> for VertexAttributeValues {
100100
fn from(vec: Vec<[u32; 3]>) -> Self {
101-
VertexAttributeValues::Uint3(vec)
101+
VertexAttributeValues::Uint32x3(vec)
102102
}
103103
}
104104

105105
impl From<Vec<[f32; 4]>> for VertexAttributeValues {
106106
fn from(vec: Vec<[f32; 4]>) -> Self {
107-
VertexAttributeValues::Float4(vec)
107+
VertexAttributeValues::Float32x4(vec)
108108
}
109109
}
110110

111111
impl From<Vec<[i32; 4]>> for VertexAttributeValues {
112112
fn from(vec: Vec<[i32; 4]>) -> Self {
113-
VertexAttributeValues::Int4(vec)
113+
VertexAttributeValues::Sint32x4(vec)
114114
}
115115
}
116116

117117
impl From<Vec<[u32; 4]>> for VertexAttributeValues {
118118
fn from(vec: Vec<[u32; 4]>) -> Self {
119-
VertexAttributeValues::Uint4(vec)
119+
VertexAttributeValues::Uint32x4(vec)
120120
}
121121
}
122122

123123
impl From<Vec<[u8; 4]>> for VertexAttributeValues {
124124
fn from(vec: Vec<[u8; 4]>) -> Self {
125-
VertexAttributeValues::Uchar4Norm(vec)
125+
VertexAttributeValues::Unorm8x4(vec)
126126
}
127127
}
128128

@@ -131,8 +131,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[u8; 4]> {
131131

132132
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
133133
match value {
134-
VertexAttributeValues::Uchar4(value) => Ok(value),
135-
VertexAttributeValues::Uchar4Norm(value) => Ok(value),
134+
VertexAttributeValues::Uint8x4(value) => Ok(value),
135+
VertexAttributeValues::Unorm8x4(value) => Ok(value),
136136
_ => Err(FromVertexAttributeError::new::<Self>(value)),
137137
}
138138
}
@@ -143,8 +143,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[i8; 4]> {
143143

144144
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
145145
match value {
146-
VertexAttributeValues::Char4(value) => Ok(value),
147-
VertexAttributeValues::Char4Norm(value) => Ok(value),
146+
VertexAttributeValues::Sint8x4(value) => Ok(value),
147+
VertexAttributeValues::Snorm8x4(value) => Ok(value),
148148
_ => Err(FromVertexAttributeError::new::<Self>(value)),
149149
}
150150
}
@@ -155,8 +155,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[u8; 2]> {
155155

156156
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
157157
match value {
158-
VertexAttributeValues::Uchar2(value) => Ok(value),
159-
VertexAttributeValues::Uchar2Norm(value) => Ok(value),
158+
VertexAttributeValues::Uint8x2(value) => Ok(value),
159+
VertexAttributeValues::Unorm8x2(value) => Ok(value),
160160
_ => Err(FromVertexAttributeError::new::<Self>(value)),
161161
}
162162
}
@@ -167,8 +167,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[i8; 2]> {
167167

168168
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
169169
match value {
170-
VertexAttributeValues::Char2(value) => Ok(value),
171-
VertexAttributeValues::Char2Norm(value) => Ok(value),
170+
VertexAttributeValues::Sint8x2(value) => Ok(value),
171+
VertexAttributeValues::Snorm8x2(value) => Ok(value),
172172
_ => Err(FromVertexAttributeError::new::<Self>(value)),
173173
}
174174
}
@@ -179,8 +179,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[i16; 4]> {
179179

180180
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
181181
match value {
182-
VertexAttributeValues::Short4(value) => Ok(value),
183-
VertexAttributeValues::Short4Norm(value) => Ok(value),
182+
VertexAttributeValues::Sint16x4(value) => Ok(value),
183+
VertexAttributeValues::Snorm16x4(value) => Ok(value),
184184
_ => Err(FromVertexAttributeError::new::<Self>(value)),
185185
}
186186
}
@@ -191,8 +191,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[u16; 4]> {
191191

192192
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
193193
match value {
194-
VertexAttributeValues::Ushort4(value) => Ok(value),
195-
VertexAttributeValues::Ushort4Norm(value) => Ok(value),
194+
VertexAttributeValues::Uint16x4(value) => Ok(value),
195+
VertexAttributeValues::Unorm16x4(value) => Ok(value),
196196
_ => Err(FromVertexAttributeError::new::<Self>(value)),
197197
}
198198
}
@@ -203,8 +203,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[u16; 2]> {
203203

204204
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
205205
match value {
206-
VertexAttributeValues::Ushort2(value) => Ok(value),
207-
VertexAttributeValues::Ushort2Norm(value) => Ok(value),
206+
VertexAttributeValues::Uint16x2(value) => Ok(value),
207+
VertexAttributeValues::Unorm16x2(value) => Ok(value),
208208
_ => Err(FromVertexAttributeError::new::<Self>(value)),
209209
}
210210
}
@@ -215,8 +215,8 @@ impl TryFrom<VertexAttributeValues> for Vec<[i16; 2]> {
215215

216216
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
217217
match value {
218-
VertexAttributeValues::Short2(value) => Ok(value),
219-
VertexAttributeValues::Short2Norm(value) => Ok(value),
218+
VertexAttributeValues::Sint16x2(value) => Ok(value),
219+
VertexAttributeValues::Snorm16x2(value) => Ok(value),
220220
_ => Err(FromVertexAttributeError::new::<Self>(value)),
221221
}
222222
}
@@ -227,7 +227,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[u32; 4]> {
227227

228228
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
229229
match value {
230-
VertexAttributeValues::Uint4(value) => Ok(value),
230+
VertexAttributeValues::Uint32x4(value) => Ok(value),
231231
_ => Err(FromVertexAttributeError::new::<Self>(value)),
232232
}
233233
}
@@ -238,7 +238,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[i32; 4]> {
238238

239239
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
240240
match value {
241-
VertexAttributeValues::Int4(value) => Ok(value),
241+
VertexAttributeValues::Sint32x4(value) => Ok(value),
242242
_ => Err(FromVertexAttributeError::new::<Self>(value)),
243243
}
244244
}
@@ -249,7 +249,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[f32; 4]> {
249249

250250
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
251251
match value {
252-
VertexAttributeValues::Float4(value) => Ok(value),
252+
VertexAttributeValues::Float32x4(value) => Ok(value),
253253
_ => Err(FromVertexAttributeError::new::<Self>(value)),
254254
}
255255
}
@@ -260,7 +260,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[u32; 3]> {
260260

261261
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
262262
match value {
263-
VertexAttributeValues::Uint3(value) => Ok(value),
263+
VertexAttributeValues::Uint32x3(value) => Ok(value),
264264
_ => Err(FromVertexAttributeError::new::<Self>(value)),
265265
}
266266
}
@@ -271,7 +271,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[i32; 3]> {
271271

272272
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
273273
match value {
274-
VertexAttributeValues::Int3(value) => Ok(value),
274+
VertexAttributeValues::Sint32x3(value) => Ok(value),
275275
_ => Err(FromVertexAttributeError::new::<Self>(value)),
276276
}
277277
}
@@ -282,7 +282,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[f32; 3]> {
282282

283283
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
284284
match value {
285-
VertexAttributeValues::Float3(value) => Ok(value),
285+
VertexAttributeValues::Float32x3(value) => Ok(value),
286286
_ => Err(FromVertexAttributeError::new::<Self>(value)),
287287
}
288288
}
@@ -293,7 +293,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[u32; 2]> {
293293

294294
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
295295
match value {
296-
VertexAttributeValues::Uint2(value) => Ok(value),
296+
VertexAttributeValues::Uint32x2(value) => Ok(value),
297297
_ => Err(FromVertexAttributeError::new::<Self>(value)),
298298
}
299299
}
@@ -304,7 +304,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[i32; 2]> {
304304

305305
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
306306
match value {
307-
VertexAttributeValues::Int2(value) => Ok(value),
307+
VertexAttributeValues::Sint32x2(value) => Ok(value),
308308
_ => Err(FromVertexAttributeError::new::<Self>(value)),
309309
}
310310
}
@@ -315,7 +315,7 @@ impl TryFrom<VertexAttributeValues> for Vec<[f32; 2]> {
315315

316316
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
317317
match value {
318-
VertexAttributeValues::Float2(value) => Ok(value),
318+
VertexAttributeValues::Float32x2(value) => Ok(value),
319319
_ => Err(FromVertexAttributeError::new::<Self>(value)),
320320
}
321321
}
@@ -326,7 +326,7 @@ impl TryFrom<VertexAttributeValues> for Vec<u32> {
326326

327327
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
328328
match value {
329-
VertexAttributeValues::Uint(value) => Ok(value),
329+
VertexAttributeValues::Uint32(value) => Ok(value),
330330
_ => Err(FromVertexAttributeError::new::<Self>(value)),
331331
}
332332
}
@@ -337,7 +337,7 @@ impl TryFrom<VertexAttributeValues> for Vec<i32> {
337337

338338
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
339339
match value {
340-
VertexAttributeValues::Int(value) => Ok(value),
340+
VertexAttributeValues::Sint32(value) => Ok(value),
341341
_ => Err(FromVertexAttributeError::new::<Self>(value)),
342342
}
343343
}
@@ -348,7 +348,7 @@ impl TryFrom<VertexAttributeValues> for Vec<f32> {
348348

349349
fn try_from(value: VertexAttributeValues) -> Result<Self, Self::Error> {
350350
match value {
351-
VertexAttributeValues::Float(value) => Ok(value),
351+
VertexAttributeValues::Float32(value) => Ok(value),
352352
_ => Err(FromVertexAttributeError::new::<Self>(value)),
353353
}
354354
}
@@ -513,9 +513,9 @@ mod tests {
513513
};
514514
assert_eq!(
515515
format!("{}", error),
516-
"cannot convert VertexAttributeValues::Uint4 to alloc::vec::Vec<u32>"
516+
"cannot convert VertexAttributeValues::Uint32x4 to alloc::vec::Vec<u32>"
517517
);
518518
assert_eq!(format!("{:?}", error),
519-
"FromVertexAttributeError { from: Uint4([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]), variant: \"Uint4\", into: \"alloc::vec::Vec<u32>\" }");
519+
"FromVertexAttributeError { from: Uint32x4([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]), variant: \"Uint32x4\", into: \"alloc::vec::Vec<u32>\" }");
520520
}
521521
}

0 commit comments

Comments
 (0)