From df053e290d52186de0cacaa4883f128d7033889f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 17 Apr 2025 16:10:33 +0200 Subject: [PATCH] Fix #137621: Cycles curve info random gives wrong value Caused by filter width changes in 5ce239cc229931b8225. Pull Request: https://projects.blender.org/blender/blender/pulls/137671 --- intern/cycles/scene/shader_nodes.cpp | 10 ++++++++-- tests/data | 2 +- tests/python/cycles_render_tests.py | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/intern/cycles/scene/shader_nodes.cpp b/intern/cycles/scene/shader_nodes.cpp index a15b89652e6..a9d7dc5d21d 100644 --- a/intern/cycles/scene/shader_nodes.cpp +++ b/intern/cycles/scene/shader_nodes.cpp @@ -4725,7 +4725,10 @@ void HairInfoNode::compile(SVMCompiler &compiler) out = output("Random"); if (!out->links.empty()) { const int attr = compiler.attribute(ATTR_STD_CURVE_RANDOM); - compiler.add_node(NODE_ATTR, attr, compiler.stack_assign(out), NODE_ATTR_OUTPUT_FLOAT); + compiler.add_node(NODE_ATTR, + attr, + compiler.encode_uchar4(compiler.stack_assign(out), NODE_ATTR_OUTPUT_FLOAT), + __float_as_uint(0.0f)); } } @@ -4777,7 +4780,10 @@ void PointInfoNode::compile(SVMCompiler &compiler) out = output("Random"); if (!out->links.empty()) { const int attr = compiler.attribute(ATTR_STD_POINT_RANDOM); - compiler.add_node(NODE_ATTR, attr, compiler.stack_assign(out), NODE_ATTR_OUTPUT_FLOAT); + compiler.add_node(NODE_ATTR, + attr, + compiler.encode_uchar4(compiler.stack_assign(out), NODE_ATTR_OUTPUT_FLOAT), + __float_as_uint(0.0f)); } } diff --git a/tests/data b/tests/data index abac1749ba2..cb97b1445fd 160000 --- a/tests/data +++ b/tests/data @@ -1 +1 @@ -Subproject commit abac1749ba20f7eecc23b424b183a93d41dc186d +Subproject commit cb97b1445fd739c8ec5c69c446f2748255ddcdb0 diff --git a/tests/python/cycles_render_tests.py b/tests/python/cycles_render_tests.py index e647949436d..06ca80099ac 100644 --- a/tests/python/cycles_render_tests.py +++ b/tests/python/cycles_render_tests.py @@ -117,7 +117,7 @@ BLOCKLIST_GPU = [ 'denoise_hair.blend', 'hair_basemesh_intercept.blend', 'hair_instancer_uv.blend', - 'hair_length_info.blend', + 'hair_info.blend', 'hair_particle_random.blend', "hair_transmission.blend", 'principled_hair_.*.blend',