Skip to content
Open
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
4 changes: 2 additions & 2 deletions ffx-reflection-dnsr/ffx_denoiser_reflections_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ min16float4 FFX_DNSR_Reflections_UnpackFloat16_4(uint2 a) { return min16float4(F
// Rounds value to the nearest multiple of 8
uint2 FFX_DNSR_Reflections_RoundUp8(uint2 value) {
uint2 round_down = value & ~0b111;
return (round_down == value) ? value : value + 8;
return select((round_down == value), value, value + 8);
}

// From "Temporal Reprojection Anti-Aliasing"
Expand Down Expand Up @@ -140,4 +140,4 @@ min16float FFX_DNSR_Reflections_LocalNeighborhoodKernelWeight(min16float i) {

#endif // FFX_DNSR_REFLECTIONS_ESTIMATES_LOCAL_NEIGHBORHOOD

#endif // FFX_DNSR_REFLECTIONS_COMMON
#endif // FFX_DNSR_REFLECTIONS_COMMON
14 changes: 7 additions & 7 deletions ffx-reflection-dnsr/ffx_denoiser_reflections_prefilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ FFX_DNSR_Reflections_NeighborhoodSample FFX_DNSR_Reflections_LoadFromGroupShared
uint2 packed_normal_variance = uint2(g_ffx_dnsr_shared_2[idx.y][idx.x], g_ffx_dnsr_shared_3[idx.y][idx.x]);
min16float4 unpacked_normal_variance = FFX_DNSR_Reflections_UnpackFloat16_4(packed_normal_variance);

FFX_DNSR_Reflections_NeighborhoodSample sample;
sample.radiance = unpacked_radiance.xyz;
sample.normal = unpacked_normal_variance.xyz;
sample.variance = unpacked_normal_variance.w;
sample.depth = g_ffx_dnsr_shared_depth[idx.y][idx.x];
return sample;
FFX_DNSR_Reflections_NeighborhoodSample neighborSample;
neighborSample.radiance = unpacked_radiance.xyz;
neighborSample.normal = unpacked_normal_variance.xyz;
neighborSample.variance = unpacked_normal_variance.w;
neighborSample.depth = g_ffx_dnsr_shared_depth[idx.y][idx.x];
return neighborSample;
}

void FFX_DNSR_Reflections_StoreInGroupSharedMemory(int2 group_thread_id, min16float3 radiance, min16float variance, min16float3 normal, float depth) {
Expand Down Expand Up @@ -158,4 +158,4 @@ void FFX_DNSR_Reflections_Prefilter(int2 dispatch_thread_id, int2 group_thread_i
FFX_DNSR_Reflections_StorePrefilteredReflections(dispatch_thread_id, resolved_radiance, resolved_variance);
}

#endif // FFX_DNSR_REFLECTIONS_PREFILTER
#endif // FFX_DNSR_REFLECTIONS_PREFILTER
15 changes: 8 additions & 7 deletions ffx-reflection-dnsr/ffx_denoiser_reflections_reproject.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ FFX_DNSR_Reflections_NeighborhoodSample FFX_DNSR_Reflections_LoadFromGroupShared
uint2 packed_radiance = uint2(g_ffx_dnsr_shared_0[idx.y][idx.x], g_ffx_dnsr_shared_1[idx.y][idx.x]);
min16float4 unpacked_radiance = FFX_DNSR_Reflections_UnpackFloat16_4(packed_radiance);

FFX_DNSR_Reflections_NeighborhoodSample sample;
sample.radiance = unpacked_radiance.xyz;
return sample;
FFX_DNSR_Reflections_NeighborhoodSample neighborSample;
neighborSample.radiance = unpacked_radiance.xyz;
return neighborSample;
}

void FFX_DNSR_Reflections_StoreInGroupSharedMemory(int2 group_thread_id, min16float3 radiance) {
Expand Down Expand Up @@ -162,6 +162,7 @@ void FFX_DNSR_Reflections_PickReprojection(int2 dispatch_thread_id,
min16float3 normal = FFX_DNSR_Reflections_LoadWorldSpaceNormal(dispatch_thread_id);
min16float3 history_normal;
float history_linear_depth;
reprojection_uv = float2(0,0);

{
const float2 motion_vector = FFX_DNSR_Reflections_LoadMotionVector(dispatch_thread_id);
Expand Down Expand Up @@ -292,9 +293,9 @@ void FFX_DNSR_Reflections_Reproject(int2 dispatch_thread_id, int2 group_thread_i
const min16float ray_length = FFX_DNSR_Reflections_LoadRayLength(dispatch_thread_id);

if (FFX_DNSR_Reflections_IsGlossyReflection(roughness)) {
min16float disocclusion_factor;
float2 reprojection_uv;
min16float3 reprojection;
min16float disocclusion_factor = 0;
float2 reprojection_uv = 0;
min16float3 reprojection = 0;
FFX_DNSR_Reflections_PickReprojection(/*in*/ dispatch_thread_id,
/* in */ group_thread_id,
/* in */ screen_size,
Expand Down Expand Up @@ -366,4 +367,4 @@ void FFX_DNSR_Reflections_Reproject(int2 dispatch_thread_id, int2 group_thread_i
}
}

#endif // FFX_DNSR_REFLECTIONS_REPROJECT
#endif // FFX_DNSR_REFLECTIONS_REPROJECT
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ FFX_DNSR_Reflections_NeighborhoodSample FFX_DNSR_Reflections_LoadFromGroupShared
uint2 packed_radiance = uint2(g_ffx_dnsr_shared_0[idx.y][idx.x], g_ffx_dnsr_shared_1[idx.y][idx.x]);
min16float3 unpacked_radiance = FFX_DNSR_Reflections_UnpackFloat16_4(packed_radiance).xyz;

FFX_DNSR_Reflections_NeighborhoodSample sample;
sample.radiance = unpacked_radiance;
return sample;
FFX_DNSR_Reflections_NeighborhoodSample neighborSample;
neighborSample.radiance = unpacked_radiance;
return neighborSample;
}

struct FFX_DNSR_Reflections_Moments {
Expand Down Expand Up @@ -143,4 +143,4 @@ void FFX_DNSR_Reflections_ResolveTemporal(int2 dispatch_thread_id, int2 group_th
FFX_DNSR_Reflections_StoreTemporalAccumulation(dispatch_thread_id, new_signal, new_variance);
}

#endif // FFX_DNSR_REFLECTIONS_RESOLVE_TEMPORAL
#endif // FFX_DNSR_REFLECTIONS_RESOLVE_TEMPORAL