Fix T98697: EEVEE: Regression: Missing custom property from volumetrics

The resource binding were missing from the shading group
(`shgroup->uniform_attrs`), leading to no custom property UBO creation
(`drw_uniform_attrs_pool_update`) when issuing the drawcall,
resulting in a missing UBO bind.

The fix make sure to no duplicate the bindings by creating a simple
shader bind instead of a `GPUMaterial` bind.

Candidate for 3.2.1 corrective release.
This commit is contained in:
2022-06-29 14:03:55 +02:00
parent 45fb7a1db5
commit a5ac0375b0

View File

@@ -306,11 +306,17 @@ void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData *sldata,
return;
}
GPUShader *sh = GPU_material_get_shader(mat);
if (sh == NULL) {
return;
}
/* TODO(fclem): Reuse main shading group to avoid shading binding cost just like for surface
* shaders. */
DRWShadingGroup *grp = DRW_shgroup_material_create(mat, vedata->psl->volumetric_objects_ps);
DRWShadingGroup *grp = DRW_shgroup_create(sh, vedata->psl->volumetric_objects_ps);
grp = DRW_shgroup_volume_create_sub(scene, ob, grp, mat);
DRW_shgroup_add_material_resources(grp, mat);
if (grp == NULL) {
return;