Skip to content

Commit 6458934

Browse files
authored
Solari: Fix bug with wrong viewport size under DLSS (#22240)
Fix #22200
1 parent 345b43c commit 6458934

File tree

4 files changed

+4
-3
lines changed

4 files changed

+4
-3
lines changed

crates/bevy_pbr/src/render/utils.wgsl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ fn sample_cosine_hemisphere(normal: vec3<f32>, rng: ptr<function, u32>) -> vec3<
104104
let z = normal.z + cos_theta;
105105
return vec3(x, y, z);
106106
}
107+
107108
// https://www.pbr-book.org/3ed-2018/Monte_Carlo_Integration/2D_Sampling_with_Multidimensional_Transformations#UniformlySamplingaHemisphere
108109
fn sample_uniform_hemisphere(normal: vec3<f32>, rng: ptr<function, u32>) -> vec3<f32> {
109110
let cos_theta = rand_f(rng);

crates/bevy_solari/src/realtime/restir_di.wgsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ fn load_temporal_reservoir(pixel_id: vec2<u32>, depth: f32, world_position: vec3
155155
return NeighborInfo(empty_reservoir(), vec3(0.0), vec3(0.0), vec3(0.0));
156156
}
157157

158-
let permuted_temporal_pixel_id = permute_pixel(vec2<u32>(temporal_pixel_id_float), constants.frame_index, view.viewport.zw);
158+
let permuted_temporal_pixel_id = permute_pixel(vec2<u32>(temporal_pixel_id_float), constants.frame_index, view.main_pass_viewport.zw);
159159
var temporal = load_temporal_reservoir_inner(permuted_temporal_pixel_id, depth, world_position, world_normal);
160160

161161
// If permuted reprojection failed (tends to happen on object edges), try point reprojection

crates/bevy_solari/src/realtime/restir_gi.wgsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ fn load_temporal_reservoir(pixel_id: vec2<u32>, depth: f32, world_position: vec3
123123
return NeighborInfo(empty_reservoir(), vec3(0.0), vec3(0.0), vec3(0.0));
124124
}
125125

126-
let permuted_temporal_pixel_id = permute_pixel(vec2<u32>(temporal_pixel_id_float), constants.frame_index, view.viewport.zw);
126+
let permuted_temporal_pixel_id = permute_pixel(vec2<u32>(temporal_pixel_id_float), constants.frame_index, view.main_pass_viewport.zw);
127127
var temporal = load_temporal_reservoir_inner(permuted_temporal_pixel_id, depth, world_position, world_normal);
128128

129129
// If permuted reprojection failed (tends to happen on object edges), try point reprojection

crates/bevy_solari/src/scene/sampling.wgsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fn balance_heuristic(f: f32, g: f32) -> f32 {
1919

2020
// https://gpuopen.com/download/Bounded_VNDF_Sampling_for_Smith-GGX_Reflections.pdf (Listing 1)
2121
fn sample_ggx_vndf(wi_tangent: vec3<f32>, roughness: f32, rng: ptr<function, u32>) -> vec3<f32> {
22-
if roughness <= 0.01 {
22+
if roughness <= 0.001 {
2323
return vec3(-wi_tangent.xy, wi_tangent.z);
2424
}
2525

0 commit comments

Comments
 (0)