Upgrade to wgpu 23 (#15988)
Fixes https://github.com/bevyengine/bevy/issues/15893 --------- Co-authored-by: François Mockers <mockersf@gmail.com>
This commit is contained in:
parent
7fc8318b7f
commit
4b05d2f4d8
@ -23,7 +23,7 @@ derive_more = { version = "1", default-features = false, features = [
|
|||||||
"from",
|
"from",
|
||||||
"display",
|
"display",
|
||||||
] }
|
] }
|
||||||
wgpu-types = { version = "22", default-features = false, optional = true }
|
wgpu-types = { version = "23", default-features = false, optional = true }
|
||||||
encase = { version = "0.10", default-features = false }
|
encase = { version = "0.10", default-features = false }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -39,7 +39,7 @@ use upsampling_pipeline::{
|
|||||||
|
|
||||||
const BLOOM_SHADER_HANDLE: Handle<Shader> = Handle::weak_from_u128(929599476923908);
|
const BLOOM_SHADER_HANDLE: Handle<Shader> = Handle::weak_from_u128(929599476923908);
|
||||||
|
|
||||||
const BLOOM_TEXTURE_FORMAT: TextureFormat = TextureFormat::Rg11b10Float;
|
const BLOOM_TEXTURE_FORMAT: TextureFormat = TextureFormat::Rg11b10Ufloat;
|
||||||
|
|
||||||
pub struct BloomPlugin;
|
pub struct BloomPlugin;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ image = { version = "0.25.2", default-features = false }
|
|||||||
# misc
|
# misc
|
||||||
bitflags = { version = "2.3", features = ["serde"] }
|
bitflags = { version = "2.3", features = ["serde"] }
|
||||||
bytemuck = { version = "1.5" }
|
bytemuck = { version = "1.5" }
|
||||||
wgpu = { version = "22", default-features = false }
|
wgpu = { version = "23", default-features = false }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
derive_more = { version = "1", default-features = false, features = [
|
derive_more = { version = "1", default-features = false, features = [
|
||||||
"error",
|
"error",
|
||||||
|
@ -182,7 +182,7 @@ pub fn dds_format_to_texture_format(
|
|||||||
DxgiFormat::R10G10B10A2_Typeless | DxgiFormat::R10G10B10A2_UNorm => {
|
DxgiFormat::R10G10B10A2_Typeless | DxgiFormat::R10G10B10A2_UNorm => {
|
||||||
TextureFormat::Rgb10a2Unorm
|
TextureFormat::Rgb10a2Unorm
|
||||||
}
|
}
|
||||||
DxgiFormat::R11G11B10_Float => TextureFormat::Rg11b10Float,
|
DxgiFormat::R11G11B10_Float => TextureFormat::Rg11b10Ufloat,
|
||||||
DxgiFormat::R8G8B8A8_Typeless
|
DxgiFormat::R8G8B8A8_Typeless
|
||||||
| DxgiFormat::R8G8B8A8_UNorm
|
| DxgiFormat::R8G8B8A8_UNorm
|
||||||
| DxgiFormat::R8G8B8A8_UNorm_sRGB => {
|
| DxgiFormat::R8G8B8A8_UNorm_sRGB => {
|
||||||
|
@ -641,7 +641,7 @@ pub fn ktx2_dfd_to_texture_format(
|
|||||||
&& sample_information[2].channel_type == 2
|
&& sample_information[2].channel_type == 2
|
||||||
&& sample_information[2].bit_length == 10
|
&& sample_information[2].bit_length == 10
|
||||||
{
|
{
|
||||||
TextureFormat::Rg11b10Float
|
TextureFormat::Rg11b10Ufloat
|
||||||
} else if sample_information[0].channel_type == 0
|
} else if sample_information[0].channel_type == 0
|
||||||
&& sample_information[0].bit_length == 9
|
&& sample_information[0].bit_length == 9
|
||||||
&& sample_information[1].channel_type == 1
|
&& sample_information[1].channel_type == 1
|
||||||
@ -1276,7 +1276,7 @@ pub fn ktx2_format_to_texture_format(
|
|||||||
ktx2::Format::R32G32B32A32_SINT => TextureFormat::Rgba32Sint,
|
ktx2::Format::R32G32B32A32_SINT => TextureFormat::Rgba32Sint,
|
||||||
ktx2::Format::R32G32B32A32_SFLOAT => TextureFormat::Rgba32Float,
|
ktx2::Format::R32G32B32A32_SFLOAT => TextureFormat::Rgba32Float,
|
||||||
|
|
||||||
ktx2::Format::B10G11R11_UFLOAT_PACK32 => TextureFormat::Rg11b10Float,
|
ktx2::Format::B10G11R11_UFLOAT_PACK32 => TextureFormat::Rg11b10Ufloat,
|
||||||
ktx2::Format::E5B9G9R9_UFLOAT_PACK32 => TextureFormat::Rgb9e5Ufloat,
|
ktx2::Format::E5B9G9R9_UFLOAT_PACK32 => TextureFormat::Rgb9e5Ufloat,
|
||||||
|
|
||||||
ktx2::Format::X8_D24_UNORM_PACK32 => TextureFormat::Depth24Plus,
|
ktx2::Format::X8_D24_UNORM_PACK32 => TextureFormat::Depth24Plus,
|
||||||
|
@ -24,7 +24,7 @@ bevy_utils = { path = "../bevy_utils", version = "0.15.0-dev" }
|
|||||||
# misc
|
# misc
|
||||||
bitflags = { version = "2.3", features = ["serde"] }
|
bitflags = { version = "2.3", features = ["serde"] }
|
||||||
bytemuck = { version = "1.5" }
|
bytemuck = { version = "1.5" }
|
||||||
wgpu = { version = "22", default-features = false }
|
wgpu = { version = "23", default-features = false }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
hexasphere = "15.0"
|
hexasphere = "15.0"
|
||||||
derive_more = { version = "1", default-features = false, features = [
|
derive_more = { version = "1", default-features = false, features = [
|
||||||
|
@ -51,7 +51,7 @@ glam = { version = "0.29", features = ["serde"], optional = true }
|
|||||||
petgraph = { version = "0.6", features = ["serde-1"], optional = true }
|
petgraph = { version = "0.6", features = ["serde-1"], optional = true }
|
||||||
smol_str = { version = "0.2.0", features = ["serde"], optional = true }
|
smol_str = { version = "0.2.0", features = ["serde"], optional = true }
|
||||||
uuid = { version = "1.0", optional = true, features = ["v4", "serde"] }
|
uuid = { version = "1.0", optional = true, features = ["v4", "serde"] }
|
||||||
wgpu-types = { version = "22", features = ["serde"], optional = true }
|
wgpu-types = { version = "23", features = ["serde"], optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
ron = "0.8.0"
|
ron = "0.8.0"
|
||||||
|
@ -67,14 +67,14 @@ codespan-reporting = "0.11.0"
|
|||||||
# It is enabled for now to avoid having to do a significant overhaul of the renderer just for wasm.
|
# It is enabled for now to avoid having to do a significant overhaul of the renderer just for wasm.
|
||||||
# When the 'atomics' feature is enabled `fragile-send-sync-non-atomic` does nothing
|
# When the 'atomics' feature is enabled `fragile-send-sync-non-atomic` does nothing
|
||||||
# and Bevy instead wraps `wgpu` types to verify they are not used off their origin thread.
|
# and Bevy instead wraps `wgpu` types to verify they are not used off their origin thread.
|
||||||
wgpu = { version = "22", default-features = false, features = [
|
wgpu = { version = "23", default-features = false, features = [
|
||||||
"wgsl",
|
"wgsl",
|
||||||
"dx12",
|
"dx12",
|
||||||
"metal",
|
"metal",
|
||||||
"naga-ir",
|
"naga-ir",
|
||||||
"fragile-send-sync-non-atomic-wasm",
|
"fragile-send-sync-non-atomic-wasm",
|
||||||
] }
|
] }
|
||||||
naga = { version = "22", features = ["wgsl-in"] }
|
naga = { version = "23", features = ["wgsl-in"] }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
bytemuck = { version = "1.5", features = ["derive", "must_cast"] }
|
bytemuck = { version = "1.5", features = ["derive", "must_cast"] }
|
||||||
downcast-rs = "1.2.0"
|
downcast-rs = "1.2.0"
|
||||||
@ -97,12 +97,12 @@ offset-allocator = "0.2"
|
|||||||
|
|
||||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||||
# Omit the `glsl` feature in non-WebAssembly by default.
|
# Omit the `glsl` feature in non-WebAssembly by default.
|
||||||
naga_oil = { version = "0.15", default-features = false, features = [
|
naga_oil = { version = "0.16", default-features = false, features = [
|
||||||
"test_shader",
|
"test_shader",
|
||||||
] }
|
] }
|
||||||
|
|
||||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||||
naga_oil = "0.15"
|
naga_oil = "0.16"
|
||||||
js-sys = "0.3"
|
js-sys = "0.3"
|
||||||
web-sys = { version = "0.3.67", features = [
|
web-sys = { version = "0.3.67", features = [
|
||||||
'Blob',
|
'Blob',
|
||||||
|
@ -45,6 +45,18 @@ impl From<wgpu::BindGroup> for BindGroup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'a> From<&'a BindGroup> for Option<&'a wgpu::BindGroup> {
|
||||||
|
fn from(value: &'a BindGroup) -> Self {
|
||||||
|
Some(value.deref())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> From<&'a mut BindGroup> for Option<&'a wgpu::BindGroup> {
|
||||||
|
fn from(value: &'a mut BindGroup) -> Self {
|
||||||
|
Some(&*value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Deref for BindGroup {
|
impl Deref for BindGroup {
|
||||||
type Target = wgpu::BindGroup;
|
type Target = wgpu::BindGroup;
|
||||||
|
|
||||||
|
@ -735,7 +735,6 @@ impl PipelineCache {
|
|||||||
let compilation_options = PipelineCompilationOptions {
|
let compilation_options = PipelineCompilationOptions {
|
||||||
constants: &std::collections::HashMap::new(),
|
constants: &std::collections::HashMap::new(),
|
||||||
zero_initialize_workgroup_memory: false,
|
zero_initialize_workgroup_memory: false,
|
||||||
vertex_pulling_transform: Default::default(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let descriptor = RawRenderPipelineDescriptor {
|
let descriptor = RawRenderPipelineDescriptor {
|
||||||
@ -747,7 +746,7 @@ impl PipelineCache {
|
|||||||
primitive: descriptor.primitive,
|
primitive: descriptor.primitive,
|
||||||
vertex: RawVertexState {
|
vertex: RawVertexState {
|
||||||
buffers: &vertex_buffer_layouts,
|
buffers: &vertex_buffer_layouts,
|
||||||
entry_point: descriptor.vertex.entry_point.deref(),
|
entry_point: Some(descriptor.vertex.entry_point.deref()),
|
||||||
module: &vertex_module,
|
module: &vertex_module,
|
||||||
// TODO: Should this be the same as the fragment compilation options?
|
// TODO: Should this be the same as the fragment compilation options?
|
||||||
compilation_options: compilation_options.clone(),
|
compilation_options: compilation_options.clone(),
|
||||||
@ -755,7 +754,7 @@ impl PipelineCache {
|
|||||||
fragment: fragment_data
|
fragment: fragment_data
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|(module, entry_point, targets)| RawFragmentState {
|
.map(|(module, entry_point, targets)| RawFragmentState {
|
||||||
entry_point,
|
entry_point: Some(entry_point),
|
||||||
module,
|
module,
|
||||||
targets,
|
targets,
|
||||||
// TODO: Should this be the same as the vertex compilation options?
|
// TODO: Should this be the same as the vertex compilation options?
|
||||||
@ -812,12 +811,11 @@ impl PipelineCache {
|
|||||||
label: descriptor.label.as_deref(),
|
label: descriptor.label.as_deref(),
|
||||||
layout: layout.as_ref().map(|layout| -> &PipelineLayout { layout }),
|
layout: layout.as_ref().map(|layout| -> &PipelineLayout { layout }),
|
||||||
module: &compute_module,
|
module: &compute_module,
|
||||||
entry_point: &descriptor.entry_point,
|
entry_point: Some(&descriptor.entry_point),
|
||||||
// TODO: Expose this somehow
|
// TODO: Expose this somehow
|
||||||
compilation_options: PipelineCompilationOptions {
|
compilation_options: PipelineCompilationOptions {
|
||||||
constants: &std::collections::HashMap::new(),
|
constants: &std::collections::HashMap::new(),
|
||||||
zero_initialize_workgroup_memory: false,
|
zero_initialize_workgroup_memory: false,
|
||||||
vertex_pulling_transform: Default::default(),
|
|
||||||
},
|
},
|
||||||
cache: None,
|
cache: None,
|
||||||
};
|
};
|
||||||
|
@ -51,7 +51,7 @@ cfg-if = "1.0"
|
|||||||
raw-window-handle = "0.6"
|
raw-window-handle = "0.6"
|
||||||
serde = { version = "1.0", features = ["derive"], optional = true }
|
serde = { version = "1.0", features = ["derive"], optional = true }
|
||||||
bytemuck = { version = "1.5", optional = true }
|
bytemuck = { version = "1.5", optional = true }
|
||||||
wgpu-types = { version = "22", optional = true }
|
wgpu-types = { version = "23", optional = true }
|
||||||
|
|
||||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||||
wasm-bindgen = { version = "0.2" }
|
wasm-bindgen = { version = "0.2" }
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
55B7188F81C3C4183F81D3AE /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A39528EB2CCB182F5328223A /* libc++.tbd */; };
|
55B7188F81C3C4183F81D3AE /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A39528EB2CCB182F5328223A /* libc++.tbd */; };
|
||||||
57CD6306253C7A940098CD4A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57CD6305253C7A940098CD4A /* AudioToolbox.framework */; };
|
57CD6306253C7A940098CD4A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57CD6305253C7A940098CD4A /* AudioToolbox.framework */; };
|
||||||
57CD630E253C80EC0098CD4A /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 57CD630A253C7F5F0098CD4A /* assets */; };
|
57CD630E253C80EC0098CD4A /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 57CD630A253C7F5F0098CD4A /* assets */; };
|
||||||
|
6ADF1AB92CCDA73A00AF5F8E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ADF1AB82CCDA73A00AF5F8E /* QuartzCore.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
@ -31,6 +32,7 @@
|
|||||||
55EAC02897847195D2F44C15 /* bevy_mobile_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = bevy_mobile_example.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
55EAC02897847195D2F44C15 /* bevy_mobile_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = bevy_mobile_example.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
57CD6305253C7A940098CD4A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
57CD6305253C7A940098CD4A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||||
57CD630A253C7F5F0098CD4A /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../../../assets; sourceTree = "<group>"; };
|
57CD630A253C7F5F0098CD4A /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../../../assets; sourceTree = "<group>"; };
|
||||||
|
6ADF1AB82CCDA73A00AF5F8E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||||
8EE7F1E3B0303533925D7E33 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
8EE7F1E3B0303533925D7E33 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||||
96A1E5B62F48B379829E8A0D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
|
96A1E5B62F48B379829E8A0D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
|
||||||
9F1B41978FA53999AA836D0F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
9F1B41978FA53999AA836D0F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||||
@ -44,6 +46,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
6ADF1AB92CCDA73A00AF5F8E /* QuartzCore.framework in Frameworks */,
|
||||||
442540D056ADB9AE61A0A590 /* Security.framework in Frameworks */,
|
442540D056ADB9AE61A0A590 /* Security.framework in Frameworks */,
|
||||||
134866208A035F8615C99114 /* Metal.framework in Frameworks */,
|
134866208A035F8615C99114 /* Metal.framework in Frameworks */,
|
||||||
2604C99FAB5A8322EDCABB9F /* UIKit.framework in Frameworks */,
|
2604C99FAB5A8322EDCABB9F /* UIKit.framework in Frameworks */,
|
||||||
@ -86,6 +89,7 @@
|
|||||||
EB028409C2D0655412DA6E44 /* Frameworks */ = {
|
EB028409C2D0655412DA6E44 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
6ADF1AB82CCDA73A00AF5F8E /* QuartzCore.framework */,
|
||||||
57CD6305253C7A940098CD4A /* AudioToolbox.framework */,
|
57CD6305253C7A940098CD4A /* AudioToolbox.framework */,
|
||||||
A39528EB2CCB182F5328223A /* libc++.tbd */,
|
A39528EB2CCB182F5328223A /* libc++.tbd */,
|
||||||
96A1E5B62F48B379829E8A0D /* Metal.framework */,
|
96A1E5B62F48B379829E8A0D /* Metal.framework */,
|
||||||
@ -294,7 +298,7 @@
|
|||||||
"-lbevy_mobile_example",
|
"-lbevy_mobile_example",
|
||||||
"-lc++abi",
|
"-lc++abi",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "org.bevyengine.example";
|
PRODUCT_BUNDLE_IDENTIFIER = org.bevyengine.example;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
};
|
};
|
||||||
@ -402,7 +406,7 @@
|
|||||||
"-lbevy_mobile_example",
|
"-lbevy_mobile_example",
|
||||||
"-lc++abi",
|
"-lc++abi",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "org.bevyengine.example";
|
PRODUCT_BUNDLE_IDENTIFIER = org.bevyengine.example;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user