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.

downsample.wgsl

Bindings

sampler_linear_clamp

#
@group(0)
@binding(0)
var sampler_linear_clamp: sampler

constants

#
@group(0)
@binding(1)
var<uniform> constants: Constants

mip_0

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(2)
var mip_0: texture_2d_array<f32>

mip_1

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(3)
var mip_1: texture_storage_2d_array<rgba16float, write>

mip_2

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(4)
var mip_2: texture_storage_2d_array<rgba16float, write>

mip_3

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(5)
var mip_3: texture_storage_2d_array<rgba16float, write>

mip_4

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(6)
var mip_4: texture_storage_2d_array<rgba16float, write>

mip_5

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(7)
var mip_5: texture_storage_2d_array<rgba16float, write>

mip_6

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(8)
var mip_6: texture_storage_2d_array<rgba16float, read_write>

mip_7

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(9)
var mip_7: texture_storage_2d_array<rgba16float, write>

mip_8

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(10)
var mip_8: texture_storage_2d_array<rgba16float, write>

mip_9

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(11)
var mip_9: texture_storage_2d_array<rgba16float, write>

mip_10

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(12)
var mip_10: texture_storage_2d_array<rgba16float, write>

mip_11

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(13)
var mip_11: texture_storage_2d_array<rgba16float, write>

mip_12

#

Shader defs requirments:

🟢 COMBINE_BIND_GROUP

@group(0)
@binding(14)
var mip_12: texture_storage_2d_array<rgba16float, write>

mip_0

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(2)
var mip_0: texture_2d_array<f32>

mip_1

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(3)
var mip_1: texture_storage_2d_array<rgba16float, write>

mip_2

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(4)
var mip_2: texture_storage_2d_array<rgba16float, write>

mip_3

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(5)
var mip_3: texture_storage_2d_array<rgba16float, write>

mip_4

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(6)
var mip_4: texture_storage_2d_array<rgba16float, write>

mip_5

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(7)
var mip_5: texture_storage_2d_array<rgba16float, write>

mip_6

#

Shader defs requirments:

🟢 FIRST_PASS

@group(0)
@binding(8)
var mip_6: texture_storage_2d_array<rgba16float, write>

mip_6

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(2)
var mip_6: texture_2d_array<f32>

mip_7

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(3)
var mip_7: texture_storage_2d_array<rgba16float, write>

mip_8

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(4)
var mip_8: texture_storage_2d_array<rgba16float, write>

mip_9

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(5)
var mip_9: texture_storage_2d_array<rgba16float, write>

mip_10

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(6)
var mip_10: texture_storage_2d_array<rgba16float, write>

mip_11

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(7)
var mip_11: texture_storage_2d_array<rgba16float, write>

mip_12

#

Shader defs requirments:

🟢 SECOND_PASS

@group(0)
@binding(8)
var mip_12: texture_storage_2d_array<rgba16float, write>

Structures

Constants

#
struct Constants {
mips: u32 ,
inverse_input_size: vec2f ,
}

Functions

downsample_first

#
@compute
Runs custom parallel code on the GPU, not limited to graphics
@workgroup_size(256, 1, 1)
Defines the size of a thread group. One to three numbers: width (x), height (y), and depth (z). Missing values default to 1
fn downsample_first (
@builtin(workgroup_id)
workgroup_id: vec3u
@builtin(local_invocation_index)
local_invocation_index: u32
)

downsample_second

#
@compute
Runs custom parallel code on the GPU, not limited to graphics
@workgroup_size(256, 1, 1)
Defines the size of a thread group. One to three numbers: width (x), height (y), and depth (z). Missing values default to 1
fn downsample_second (
@builtin(workgroup_id)
workgroup_id: vec3u
@builtin(local_invocation_index)
local_invocation_index: u32
)

spd_downsample_mips_0_1

#
fn spd_downsample_mips_0_1 (
workgroup_id: vec2u
local_invocation_index: u32
mips: u32
slice: u32
)

spd_downsample_next_four

#
fn spd_downsample_next_four (
workgroup_id: vec2u
local_invocation_index: u32
base_mip: u32
mips: u32
slice: u32
)

spd_downsample_mip_2

#
fn spd_downsample_mip_2 (
workgroup_id: vec2u
local_invocation_index: u32
base_mip: u32
slice: u32
)

spd_downsample_mip_3

#
fn spd_downsample_mip_3 (
workgroup_id: vec2u
local_invocation_index: u32
base_mip: u32
slice: u32
)

spd_downsample_mip_4

#
fn spd_downsample_mip_4 (
workgroup_id: vec2u
local_invocation_index: u32
base_mip: u32
slice: u32
)

spd_downsample_mip_5

#
fn spd_downsample_mip_5 (
workgroup_id: vec2u
local_invocation_index: u32
base_mip: u32
slice: u32
)

spd_downsample_mips_6_7

#
fn spd_downsample_mips_6_7 (
mips: u32
slice: u32
)

remap_for_wave_reduction

#
fn remap_for_wave_reduction ( ) -> vec2u

spd_reduce_load_source_image

#
fn spd_reduce_load_source_image (
uv: vec2u
slice: u32
) -> vec4f

spd_store

#
fn spd_store (
pix: vec2u
value: vec4f
mip: u32
slice: u32
)

spd_store_intermediate

#
fn spd_store_intermediate (
value: vec4f
)

spd_load_intermediate

#
fn spd_load_intermediate ( ) -> vec4f

spd_reduce_intermediate

#
fn spd_reduce_intermediate (
i0: vec2u
i1: vec2u
i2: vec2u
i3: vec2u
) -> vec4f

spd_reduce_load_4

#
fn spd_reduce_load_4 (
i0: vec2u
i1: vec2u
i2: vec2u
i3: vec2u
slice: u32
) -> vec4f

spd_reduce_4

#
fn spd_reduce_4 (
v0: vec4f
v1: vec4f
v2: vec4f
v3: vec4f
) -> vec4f

spd_reduce_quad

#

Shader defs requirments:

🟢 SUBGROUP_SUPPORT

fn spd_reduce_quad (
v: vec4f
) -> vec4f

srgb_from_linear

#
fn srgb_from_linear (
value: f32
) -> f32