Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wgpu 0.17 #9302

Merged
merged 8 commits into from
Oct 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .github/example-run/minimising.ron

This file was deleted.

4 changes: 0 additions & 4 deletions .github/example-run/resizing.ron

This file was deleted.

2 changes: 1 addition & 1 deletion crates/bevy_pbr/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ bitflags = "2.3"
fixedbitset = "0.4"
# direct dependency required for derive macro
bytemuck = { version = "1", features = ["derive"] }
naga_oil = "0.8"
radsort = "0.1"
naga_oil = "0.9"
smallvec = "1.6"
thread_local = "1.0"
10 changes: 1 addition & 9 deletions crates/bevy_pbr/src/ssao/gtao.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,12 @@ fn calculate_neighboring_depth_differences(pixel_coordinates: vec2<i32>) -> f32
edge_info = saturate((1.0 + bias) - edge_info / scale); // Apply the bias and scale, and invert edge_info so that small values become large, and vice versa

// Pack the edge info into the texture
let edge_info_packed = vec4<u32>(mypack4x8unorm(edge_info), 0u, 0u, 0u);
let edge_info_packed = vec4<u32>(pack4x8unorm(edge_info), 0u, 0u, 0u);
textureStore(depth_differences, pixel_coordinates, edge_info_packed);

return depth_center;
}

// TODO: Remove this once https://github.com/gfx-rs/naga/pull/2353 lands
fn mypack4x8unorm(e: vec4<f32>) -> u32 {
return u32(clamp(e.x, 0.0, 1.0) * 255.0 + 0.5) |
u32(clamp(e.y, 0.0, 1.0) * 255.0 + 0.5) << 8u |
u32(clamp(e.z, 0.0, 1.0) * 255.0 + 0.5) << 16u |
u32(clamp(e.w, 0.0, 1.0) * 255.0 + 0.5) << 24u;
}

fn load_normal_view_space(uv: vec2<f32>) -> vec3<f32> {
var world_normal = textureSampleLevel(normals, point_clamp_sampler, uv, 0.0).xyz;
world_normal = (world_normal * 2.0) - 1.0;
Expand Down
18 changes: 5 additions & 13 deletions crates/bevy_pbr/src/ssao/spatial_denoise.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ fn spatial_denoise(@builtin(global_invocation_id) global_id: vec3<u32>) {
let visibility2 = textureGather(0, ambient_occlusion_noisy, point_clamp_sampler, uv, vec2<i32>(0i, 2i));
let visibility3 = textureGather(0, ambient_occlusion_noisy, point_clamp_sampler, uv, vec2<i32>(2i, 2i));

let left_edges = myunpack4x8unorm(edges0.x);
let right_edges = myunpack4x8unorm(edges1.x);
let top_edges = myunpack4x8unorm(edges0.z);
let bottom_edges = myunpack4x8unorm(edges2.w);
var center_edges = myunpack4x8unorm(edges0.y);
let left_edges = unpack4x8unorm(edges0.x);
let right_edges = unpack4x8unorm(edges1.x);
let top_edges = unpack4x8unorm(edges0.z);
let bottom_edges = unpack4x8unorm(edges2.w);
var center_edges = unpack4x8unorm(edges0.y);
center_edges *= vec4<f32>(left_edges.y, right_edges.x, top_edges.w, bottom_edges.z);

let center_weight = 1.2;
Expand Down Expand Up @@ -82,11 +82,3 @@ fn spatial_denoise(@builtin(global_invocation_id) global_id: vec3<u32>) {

textureStore(ambient_occlusion, pixel_coordinates, vec4<f32>(denoised_visibility, 0.0, 0.0, 0.0));
}

// TODO: Remove this once https://github.com/gfx-rs/naga/pull/2353 lands in Bevy
fn myunpack4x8unorm(e: u32) -> vec4<f32> {
return vec4<f32>(clamp(f32(e & 0xFFu) / 255.0, 0.0, 1.0),
clamp(f32((e >> 8u) & 0xFFu) / 255.0, 0.0, 1.0),
clamp(f32((e >> 16u) & 0xFFu) / 255.0, 0.0, 1.0),
clamp(f32((e >> 24u) & 0xFFu) / 255.0, 0.0, 1.0));
}
8 changes: 5 additions & 3 deletions crates/bevy_render/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,12 @@ bevy_tasks = { path = "../bevy_tasks", version = "0.12.0-dev" }
image = { version = "0.24", default-features = false }

# misc
wgpu = { version = "0.16.0", features=["naga"] }
codespan-reporting = "0.11.0"
naga = { version = "0.12.0", features = ["wgsl-in"] }
# `fragile-send-sync-non-atomic-wasm` feature means we can't use WASM threads for rendering
# It is enabled for now to avoid having to do a significant overhaul of the renderer just for wasm
wgpu = { version = "0.17.1", features = ["naga", "fragile-send-sync-non-atomic-wasm"] }
Elabajaba marked this conversation as resolved.
Show resolved Hide resolved
naga = { version = "0.13.0", features = ["wgsl-in"] }
naga_oil = "0.9"
serde = { version = "1", features = ["derive"] }
bitflags = "2.3"
bytemuck = { version = "1.5", features = ["derive"] }
Expand All @@ -71,7 +74,6 @@ futures-lite = "1.4.0"
hexasphere = "9.0"
ddsfile = { version = "0.5.0", optional = true }
ktx2 = { version = "0.3.0", optional = true }
naga_oil = "0.8"
# For ktx2 supercompression
flate2 = { version = "1.0.22", optional = true }
ruzstd = { version = "0.4.0", optional = true }
Expand Down
Loading