[Bf-blender-cvs] [b9d02b9cede] blender-v3.2-release: Fix T97895: Eevee support for Geometry Nodes Color Attributes.

Jeroen Bakker noreply at git.blender.org
Wed May 11 14:03:23 CEST 2022


Commit: b9d02b9cede338117179897fdcc2d3b1f7499cb3
Author: Jeroen Bakker
Date:   Wed May 11 14:01:47 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rBb9d02b9cede338117179897fdcc2d3b1f7499cb3

Fix T97895: Eevee support for Geometry Nodes Color Attributes.

Geometry nodes can generate color attributes that aren't on point or corner domain.
When not found in these domains it will be processed as a common attribute.

===================================================================

M	source/blender/draw/intern/draw_cache_impl_mesh.c

===================================================================

diff --git a/source/blender/draw/intern/draw_cache_impl_mesh.c b/source/blender/draw/intern/draw_cache_impl_mesh.c
index 07d740d89c1..7dc0244275d 100644
--- a/source/blender/draw/intern/draw_cache_impl_mesh.c
+++ b/source/blender/draw/intern/draw_cache_impl_mesh.c
@@ -708,12 +708,18 @@ static DRW_MeshCDMask mesh_cd_calc_used_gpu_layers(const Object *object,
           case CD_MCOL:
           case CD_PROP_BYTE_COLOR:
           case CD_PROP_COLOR: {
+            /* First check Color attributes, when not found check mesh attributes. Geometry nodes
+             * can generate those layers. */
             int vcol_bit = mesh_cd_calc_gpu_layers_vcol_used(&me_query, cd_vdata, cd_ldata, name);
 
             if (vcol_bit != -1) {
               cd_used.vcol |= 1UL << (uint)vcol_bit;
+              break;
             }
 
+            if (layer != -1 && domain != ATTR_DOMAIN_NUM) {
+              drw_mesh_attributes_add_request(attributes, type, layer, domain);
+            }
             break;
           }
           case CD_PROP_FLOAT3:



More information about the Bf-blender-cvs mailing list