48 GPUTexture *input_color_tx_ =
nullptr;
49 GPUTexture *output_color_tx_ =
nullptr;
60 int3 dispatch_setup_size_ =
int3(-1);
64 Texture reduced_coc_tx_ = {
"dof_reduced_coc"};
65 Texture reduced_color_tx_ = {
"dof_reduced_color"};
69 GPUTexture *stabilize_input_ =
nullptr;
70 bool32_t stabilize_valid_history_ =
false;
71 int3 dispatch_stabilize_size_ =
int3(-1);
76 int3 dispatch_downsample_size_ =
int3(-1);
84 int3 dispatch_reduce_size_ =
int3(-1);
90 int3 dispatch_tiles_flatten_size_ =
int3(-1);
91 PassSimple tiles_flatten_ps_ = {
"TilesFlatten"};
94 int tiles_dilate_ring_count_ = -1;
95 int tiles_dilate_ring_width_mul_ = -1;
96 int3 dispatch_tiles_dilate_size_ =
int3(-1);
97 PassSimple tiles_dilate_minmax_ps_ = {
"TilesDilateMinmax"};
98 PassSimple tiles_dilate_minabs_ps_ = {
"TilesDilateMinabs"};
106 int3 dispatch_gather_size_ =
int3(-1);
116 int3 dispatch_filter_size_ =
int3(-1);
127 GPUTexture *resolve_stable_color_tx_ =
nullptr;
128 int3 dispatch_resolve_size_ =
int3(-1);
134 float user_overblur_ = 0.0f;
135 float fx_max_coc_ = 0.0f;
137 bool do_jitter_ =
false;
139 bool use_bokeh_lut_ =
false;
142 float fx_radius_ = 0.0f;
144 float jitter_radius_ = 0.0f;
146 float focus_distance_ = 0.0f;
150 bool enabled_ =
false;
170 GPUTexture **input_tx,
171 GPUTexture **output_tx,
176 return fx_radius_ > 0.0f;
185 void bokeh_lut_pass_sync();
186 void setup_pass_sync();
187 void stabilize_pass_sync();
188 void downsample_pass_sync();
189 void reduce_pass_sync();
190 void tiles_flatten_pass_sync();
191 void tiles_dilate_pass_sync();
192 void gather_pass_sync();
193 void filter_pass_sync();
194 void scatter_pass_sync();
195 void hole_fill_pass_sync();
196 void resolve_pass_sync();
202 void update_sample_table();