Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/workbench/workbench_effect_dof.c
| Show First 20 Lines • Show All 320 Lines • ▼ Show 20 Lines | #if 0 /* TODO(fclem) finish COC min_max optimization */ | ||||
| } | } | ||||
| #endif | #endif | ||||
| { | { | ||||
| psl->dof_blur1_ps = DRW_pass_create("DoF Blur 1", DRW_STATE_WRITE_COLOR); | psl->dof_blur1_ps = DRW_pass_create("DoF Blur 1", DRW_STATE_WRITE_COLOR); | ||||
| /* We reuse the same noise texture. Ensure it is up to date. */ | /* We reuse the same noise texture. Ensure it is up to date. */ | ||||
| workbench_cavity_samples_ubo_ensure(wpd); | workbench_cavity_samples_ubo_ensure(wpd); | ||||
| float offset = wpd->taa_sample / wpd->taa_sample_len; | float offset = 0.0; | ||||
| if (wpd->taa_sample_len != 0) { | |||||
| offset = wpd->taa_sample / wpd->taa_sample_len; | |||||
fclem: Prefer `offset = wpd->taa_sample / (float)max_ii(1, wpd->taa_sample_len);`.
I also just found… | |||||
| } | |||||
| DRWShadingGroup *grp = DRW_shgroup_create(blur1_sh, psl->dof_blur1_ps); | DRWShadingGroup *grp = DRW_shgroup_create(blur1_sh, psl->dof_blur1_ps); | ||||
| DRW_shgroup_uniform_block(grp, "dofSamplesBlock", wpd->vldata->dof_sample_ubo); | DRW_shgroup_uniform_block(grp, "dofSamplesBlock", wpd->vldata->dof_sample_ubo); | ||||
| DRW_shgroup_uniform_texture(grp, "noiseTex", wpd->vldata->cavity_jitter_tx); | DRW_shgroup_uniform_texture(grp, "noiseTex", wpd->vldata->cavity_jitter_tx); | ||||
| DRW_shgroup_uniform_texture(grp, "inputCocTex", txl->coc_halfres_tx); | DRW_shgroup_uniform_texture(grp, "inputCocTex", txl->coc_halfres_tx); | ||||
| DRW_shgroup_uniform_texture(grp, "halfResColorTex", txl->dof_source_tx); | DRW_shgroup_uniform_texture(grp, "halfResColorTex", txl->dof_source_tx); | ||||
| DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1); | DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1); | ||||
| DRW_shgroup_uniform_float_copy(grp, "noiseOffset", offset); | DRW_shgroup_uniform_float_copy(grp, "noiseOffset", offset); | ||||
| DRW_shgroup_call_procedural_triangles(grp, NULL, 1); | DRW_shgroup_call_procedural_triangles(grp, NULL, 1); | ||||
| ▲ Show 20 Lines • Show All 75 Lines • Show Last 20 Lines | |||||
Prefer offset = wpd->taa_sample / (float)max_ii(1, wpd->taa_sample_len);.
I also just found that we are missing a float cast here.