Upgrade to wgpu 26
This commit is contained in:
parent
515236ddaf
commit
97e1737362
@ -98,6 +98,7 @@ impl Node for CasNode {
|
||||
label: Some("contrast_adaptive_sharpening"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
|
||||
@ -64,6 +64,7 @@ impl ViewNode for FxaaNode {
|
||||
label: Some("fxaa_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
|
||||
@ -934,6 +934,7 @@ fn perform_edge_detection(
|
||||
label: Some("SMAA edge detection pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: &smaa_textures.edge_detection_color_texture.default_view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: default(),
|
||||
})],
|
||||
@ -989,6 +990,7 @@ fn perform_blending_weight_calculation(
|
||||
label: Some("SMAA blending weight calculation pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: &smaa_textures.blend_texture.default_view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: default(),
|
||||
})],
|
||||
@ -1045,6 +1047,7 @@ fn perform_neighborhood_blending(
|
||||
label: Some("SMAA neighborhood blending pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: default(),
|
||||
})],
|
||||
|
||||
@ -208,11 +208,13 @@ impl ViewNode for TemporalAntiAliasNode {
|
||||
color_attachments: &[
|
||||
Some(RenderPassColorAttachment {
|
||||
view: view_target.destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
}),
|
||||
Some(RenderPassColorAttachment {
|
||||
view: &taa_history_textures.write.default_view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
}),
|
||||
|
||||
@ -20,7 +20,7 @@ serde = { version = "1.0", features = [
|
||||
], default-features = false, optional = true }
|
||||
thiserror = { version = "2", default-features = false }
|
||||
derive_more = { version = "2", default-features = false, features = ["from"] }
|
||||
wgpu-types = { version = "25", default-features = false, optional = true }
|
||||
wgpu-types = { path = "../../../../gfx-rs/wgpu/wgpu-types", default-features = false, optional = true }
|
||||
encase = { version = "0.10", default-features = false, optional = true }
|
||||
|
||||
[features]
|
||||
|
||||
@ -184,6 +184,7 @@ impl ViewNode for BloomNode {
|
||||
label: Some("bloom_downsampling_first_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
@ -208,6 +209,7 @@ impl ViewNode for BloomNode {
|
||||
label: Some("bloom_downsampling_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
@ -232,6 +234,7 @@ impl ViewNode for BloomNode {
|
||||
label: Some("bloom_upsampling_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: LoadOp::Load,
|
||||
|
||||
@ -416,6 +416,7 @@ impl ViewNode for DepthOfFieldNode {
|
||||
let mut color_attachments: SmallVec<[_; 2]> = SmallVec::new();
|
||||
color_attachments.push(Some(RenderPassColorAttachment {
|
||||
view: postprocess.destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: LoadOp::Clear(default()),
|
||||
@ -436,6 +437,7 @@ impl ViewNode for DepthOfFieldNode {
|
||||
};
|
||||
color_attachments.push(Some(RenderPassColorAttachment {
|
||||
view: &auxiliary_dof_texture.default_view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: LoadOp::Clear(default()),
|
||||
|
||||
@ -84,6 +84,7 @@ impl ViewNode for MotionBlurNode {
|
||||
label: Some("motion_blur_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: post_process.destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
|
||||
@ -87,6 +87,7 @@ impl ViewNode for MsaaWritebackNode {
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
// If MSAA is enabled, then the sampled texture will always exist
|
||||
view: target.sampled_main_texture_view().unwrap(),
|
||||
depth_slice: None,
|
||||
resolve_target: Some(post_process.destination),
|
||||
ops: Operations {
|
||||
load: LoadOp::Clear(LinearRgba::BLACK.into()),
|
||||
|
||||
@ -390,6 +390,7 @@ impl ViewNode for PostProcessingNode {
|
||||
label: Some("postprocessing pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: post_process.destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
|
||||
@ -117,6 +117,7 @@ impl ViewNode for TonemappingNode {
|
||||
label: Some("tonemapping_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: LoadOp::Clear(Default::default()), // TODO shouldn't need to be cleared
|
||||
|
||||
@ -70,7 +70,7 @@ image = { version = "0.25.2", default-features = false }
|
||||
# misc
|
||||
bitflags = { version = "2.3", features = ["serde"] }
|
||||
bytemuck = { version = "1.5" }
|
||||
wgpu-types = { version = "25", default-features = false }
|
||||
wgpu-types = { path = "../../../../gfx-rs/wgpu/wgpu-types", default-features = false }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
thiserror = { version = "2", default-features = false }
|
||||
futures-lite = "2.0.1"
|
||||
|
||||
@ -27,7 +27,7 @@ bevy_platform = { path = "../bevy_platform", version = "0.17.0-dev", default-fea
|
||||
# other
|
||||
bitflags = { version = "2.3", features = ["serde"] }
|
||||
bytemuck = { version = "1.5" }
|
||||
wgpu-types = { version = "25", default-features = false }
|
||||
wgpu-types = { path = "../../../../gfx-rs/wgpu/wgpu-types", default-features = false }
|
||||
serde = { version = "1", default-features = false, features = [
|
||||
"derive",
|
||||
], optional = true }
|
||||
|
||||
@ -311,6 +311,7 @@ impl ViewNode for ScreenSpaceReflectionsNode {
|
||||
label: Some("SSR pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: postprocess.destination,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations::default(),
|
||||
})],
|
||||
|
||||
@ -442,6 +442,7 @@ impl ViewNode for VolumetricFogNode {
|
||||
label: Some("volumetric lighting pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: view_target.main_texture_view(),
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: LoadOp::Load,
|
||||
|
||||
@ -109,7 +109,7 @@ uuid = { version = "1.13.1", default-features = false, optional = true, features
|
||||
"serde",
|
||||
] }
|
||||
variadics_please = "1.1"
|
||||
wgpu-types = { version = "25", features = [
|
||||
wgpu-types = { path = "../../../../gfx-rs/wgpu/wgpu-types", features = [
|
||||
"serde",
|
||||
], optional = true, default-features = false }
|
||||
|
||||
|
||||
@ -90,7 +90,7 @@ codespan-reporting = "0.12.0"
|
||||
# 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
|
||||
# and Bevy instead wraps `wgpu` types to verify they are not used off their origin thread.
|
||||
wgpu = { version = "25", default-features = false, features = [
|
||||
wgpu = { path = "../../../../gfx-rs/wgpu/wgpu", default-features = false, features = [
|
||||
"wgsl",
|
||||
"dx12",
|
||||
"metal",
|
||||
@ -99,7 +99,7 @@ wgpu = { version = "25", default-features = false, features = [
|
||||
"naga-ir",
|
||||
"fragile-send-sync-non-atomic-wasm",
|
||||
] }
|
||||
naga = { version = "25", features = ["wgsl-in"] }
|
||||
naga = { path = "../../../../gfx-rs/wgpu/naga", features = ["wgsl-in"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
bytemuck = { version = "1.5", features = ["derive", "must_cast"] }
|
||||
downcast-rs = { version = "2", default-features = false, features = ["std"] }
|
||||
@ -125,7 +125,7 @@ wesl = { version = "0.1.2", optional = true }
|
||||
|
||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||
# Omit the `glsl` feature in non-WebAssembly by default.
|
||||
naga_oil = { version = "0.18", default-features = false, features = [
|
||||
naga_oil = { path = "../../../naga_oil", default-features = false, features = [
|
||||
"test_shader",
|
||||
] }
|
||||
|
||||
@ -133,7 +133,7 @@ naga_oil = { version = "0.18", default-features = false, features = [
|
||||
proptest = "1"
|
||||
|
||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||
naga_oil = { version = "0.18" }
|
||||
naga_oil = { path = "../../../naga_oil" }
|
||||
js-sys = "0.3"
|
||||
web-sys = { version = "0.3.67", features = [
|
||||
'Blob',
|
||||
|
||||
@ -76,6 +76,7 @@ impl Node for CameraDriverNode {
|
||||
label: Some("no_camera_clear_pass"),
|
||||
color_attachments: &[Some(RenderPassColorAttachment {
|
||||
view: swap_chain_texture,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: LoadOp::Clear(clear_color_global.to_linear().into()),
|
||||
|
||||
@ -370,6 +370,7 @@ impl Plugin for RenderPlugin {
|
||||
let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor {
|
||||
backends,
|
||||
flags: settings.instance_flags,
|
||||
memory_budget_thresholds: settings.instance_memory_budget_thresholds,
|
||||
backend_options: wgpu::BackendOptions {
|
||||
gl: wgpu::GlBackendOptions {
|
||||
gles_minor_version: settings.gles3_minor_version,
|
||||
|
||||
@ -401,7 +401,7 @@ impl ShaderCache {
|
||||
render_device.create_and_validate_shader_module(module_descriptor)
|
||||
}
|
||||
// SAFETY: we are interfacing with shader code, which may contain undefined behavior,
|
||||
// such as indexing out of bounds.
|
||||
// such as indexing out of bounds.
|
||||
// The checks required are prohibitively expensive and a poor default for game engines.
|
||||
ValidateShader::Disabled => unsafe {
|
||||
render_device.create_shader_module(module_descriptor)
|
||||
|
||||
@ -3,7 +3,7 @@ use crate::renderer::{
|
||||
};
|
||||
use alloc::borrow::Cow;
|
||||
|
||||
use wgpu::DxcShaderModel;
|
||||
use wgpu::{DxcShaderModel, MemoryBudgetThresholds};
|
||||
pub use wgpu::{
|
||||
Backends, Dx12Compiler, Features as WgpuFeatures, Gles3MinorVersion, InstanceFlags,
|
||||
Limits as WgpuLimits, MemoryHints, PowerPreference,
|
||||
@ -53,6 +53,8 @@ pub struct WgpuSettings {
|
||||
pub instance_flags: InstanceFlags,
|
||||
/// This hints to the WGPU device about the preferred memory allocation strategy.
|
||||
pub memory_hints: MemoryHints,
|
||||
/// The thresholds for device memory budget.
|
||||
pub instance_memory_budget_thresholds: MemoryBudgetThresholds,
|
||||
}
|
||||
|
||||
impl Default for WgpuSettings {
|
||||
@ -103,15 +105,12 @@ impl Default for WgpuSettings {
|
||||
Dx12Compiler::StaticDxc
|
||||
} else {
|
||||
let dxc = "dxcompiler.dll";
|
||||
let dxil = "dxil.dll";
|
||||
|
||||
if cfg!(target_os = "windows")
|
||||
&& std::fs::metadata(dxc).is_ok()
|
||||
&& std::fs::metadata(dxil).is_ok()
|
||||
{
|
||||
Dx12Compiler::DynamicDxc {
|
||||
dxc_path: String::from(dxc),
|
||||
dxil_path: String::from(dxil),
|
||||
max_shader_model: DxcShaderModel::V6_7,
|
||||
}
|
||||
} else {
|
||||
@ -136,6 +135,7 @@ impl Default for WgpuSettings {
|
||||
gles3_minor_version,
|
||||
instance_flags,
|
||||
memory_hints: MemoryHints::default(),
|
||||
instance_memory_budget_thresholds:MemoryBudgetThresholds::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,6 +40,7 @@ impl ColorAttachment {
|
||||
|
||||
RenderPassColorAttachment {
|
||||
view: &resolve_target.default_view,
|
||||
depth_slice: None,
|
||||
resolve_target: Some(&self.texture.default_view),
|
||||
ops: Operations {
|
||||
load: match (self.clear_color, first_call) {
|
||||
@ -63,6 +64,7 @@ impl ColorAttachment {
|
||||
|
||||
RenderPassColorAttachment {
|
||||
view: &self.texture.default_view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: match (self.clear_color, first_call) {
|
||||
@ -146,6 +148,7 @@ impl OutputColorAttachment {
|
||||
|
||||
RenderPassColorAttachment {
|
||||
view: &self.view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: Operations {
|
||||
load: match (clear_color, first_call) {
|
||||
|
||||
@ -600,6 +600,7 @@ fn render_screenshot(
|
||||
label: Some("screenshot_to_screen_pass"),
|
||||
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
|
||||
view: texture_view,
|
||||
depth_slice: None,
|
||||
resolve_target: None,
|
||||
ops: wgpu::Operations {
|
||||
load: wgpu::LoadOp::Load,
|
||||
|
||||
@ -59,7 +59,7 @@ cfg-if = "1.0"
|
||||
raw-window-handle = "0.6"
|
||||
serde = { version = "1.0", features = ["derive"], optional = true }
|
||||
bytemuck = { version = "1.5", optional = true }
|
||||
wgpu-types = { version = "25", optional = true }
|
||||
wgpu-types = { path = "../../../../gfx-rs/wgpu/wgpu-types", optional = true }
|
||||
accesskit = "0.19"
|
||||
tracing = { version = "0.1", default-features = false, features = ["std"] }
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user