Advanced search tips: use spaces to require multiple terms (AND), | for alternatives (OR), wrap phrases in quotes (="a b"), =term for exact match, 'term to include, !term to exclude, ^term to match prefix, !^term to exclude prefix, .ext$ to match suffix, and !.ext$ to exclude suffix.

realtime_bindings.wgsl

Import path

Bindings

view_output

#
@group(1)
@binding(0)
var view_output: texture_storage_2d<rgba16float, read_write>

light_tile_samples

#
@group(1)
@binding(1)
var<storage, read_write> light_tile_samples: array<LightSample>

light_tile_resolved_samples

#
@group(1)
@binding(2)
var<storage, read_write> light_tile_resolved_samples: array<ResolvedLightSamplePacked>

di_reservoirs_a

#
@group(1)
@binding(3)
var di_reservoirs_a: texture_storage_2d<rgba32uint, read_write>

di_reservoirs_b

#
@group(1)
@binding(4)
var di_reservoirs_b: texture_storage_2d<rgba32uint, read_write>

gi_reservoirs_a

#
@group(1)
@binding(5)
var<storage, read_write> gi_reservoirs_a: array<Reservoir>

gi_reservoirs_b

#
@group(1)
@binding(6)
var<storage, read_write> gi_reservoirs_b: array<Reservoir>

gbuffer

#
@group(1)
@binding(7)
var gbuffer: texture_2d<u32>

depth_buffer

#
@group(1)
@binding(8)
var depth_buffer: texture_depth_2d

motion_vectors

#
@group(1)
@binding(9)
var motion_vectors: texture_2d<f32>

previous_gbuffer

#
@group(1)
@binding(10)
var previous_gbuffer: texture_2d<u32>

previous_depth_buffer

#
@group(1)
@binding(11)
var previous_depth_buffer: texture_depth_2d

view

#
@group(1)
@binding(12)
var<uniform> view: View

previous_view

#
@group(1)
@binding(13)
var<uniform> previous_view: PreviousViewUniforms

world_cache_checksums

#
@group(1)
@binding(14)
var<storage, read_write> world_cache_checksums: atomic<u32>

world_cache_life

#

Shader defs requirments:

🟢 WORLD_CACHE_NON_ATOMIC_LIFE_BUFFER

@group(1)
@binding(15)
var<storage, read_write> world_cache_life: WORLD_CACHE_SIZE

world_cache_life

#

Shader defs requirments:

šŸ”“ WORLD_CACHE_NON_ATOMIC_LIFE_BUFFER

@group(1)
@binding(15)
var<storage, read_write> world_cache_life: atomic<u32>

world_cache_radiance

#
@group(1)
@binding(16)
var<storage, read_write> world_cache_radiance: vec4<f32>

world_cache_geometry_data

#
@group(1)
@binding(17)
var<storage, read_write> world_cache_geometry_data: WorldCacheGeometryData

world_cache_luminance_deltas

#
@group(1)
@binding(18)
var<storage, read_write> world_cache_luminance_deltas: WORLD_CACHE_SIZE

world_cache_active_cells_new_radiance

#
@group(1)
@binding(19)
var<storage, read_write> world_cache_active_cells_new_radiance: vec3<f32>

world_cache_a

#
@group(1)
@binding(20)
var<storage, read_write> world_cache_a: WORLD_CACHE_SIZE

world_cache_b

#
@group(1)
@binding(21)
var<storage, read_write> world_cache_b: array<u32, 1024u>

world_cache_active_cell_indices

#
@group(1)
@binding(22)
var<storage, read_write> world_cache_active_cell_indices: WORLD_CACHE_SIZE

world_cache_active_cells_count

#
@group(1)
@binding(23)
var<storage, read_write> world_cache_active_cells_count: u32

diffuse_albedo

#

Shader defs requirments:

🟢 DLSS_RR_GUIDE_BUFFERS

@group(2)
@binding(0)
var diffuse_albedo: texture_storage_2d<rgba8unorm, write>

specular_albedo

#

Shader defs requirments:

🟢 DLSS_RR_GUIDE_BUFFERS

@group(2)
@binding(1)
var specular_albedo: texture_storage_2d<rgba8unorm, write>

normal_roughness

#

Shader defs requirments:

🟢 DLSS_RR_GUIDE_BUFFERS

@group(2)
@binding(2)
var normal_roughness: texture_storage_2d<rgba16float, write>

specular_motion_vectors

#

Shader defs requirments:

🟢 DLSS_RR_GUIDE_BUFFERS

@group(2)
@binding(3)
var specular_motion_vectors: texture_storage_2d<rg16float, write>

Structures

PushConstants

#
struct PushConstants {
frame_index: u32 ,
reset: u32 ,
}

ResolvedLightSamplePacked

#

Don’t adjust the size of this struct without also adjusting prepare::RESOLVED_LIGHT_SAMPLE_STRUCT_SIZE.

struct ResolvedLightSamplePacked {
world_position_x: f32 ,
world_position_y: f32 ,
world_position_z: f32 ,
world_normal: u32 ,
radiance: u32 ,
inverse_pdf: f32 ,
}

Reservoir

#

Don’t adjust the size of this struct without also adjusting prepare::GI_RESERVOIR_STRUCT_SIZE.

struct Reservoir {
sample_point_world_position: vec3<f32> ,
weight_sum: f32 ,
radiance: vec3<f32> ,
confidence_weight: f32 ,
sample_point_world_normal: vec3<f32> ,
unbiased_contribution_weight: f32 ,
}

WorldCacheGeometryData

#
struct WorldCacheGeometryData {
world_position: vec3<f32> ,
padding_a: u32 ,
world_normal: vec3<f32> ,
padding_b: u32 ,
}