[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#848258: openCL errors: patch available upstream



On Fri, 10 Mar 2017 10:47:37 +0900
Michel Dänzer <michel@daenzer.net> wrote:

>> https://bugs.freedesktop.org/show_bug.cgi?id=99856#c24
> 
> That's a different issue from the one this bug report is about. It
> would have to be reported against the libclc-amdgcn package.

That's a bug report (now with patch) filed against Mesa, entitled
"unsupported call to function get_local_size", which is one of the
things that the Debian bug submitter was complaining about, when he
filed this bug against the Debian Mesa package. The recommended solution
from the Mesa maintainers, which I quoted, is that distributions apply
the patch locally.

It turns out that this is the ONLY Mesa problem that the Debian bug
submitter was complaining about -- all the other problems are Blender
bugs, found in the upstream Blender build that he was using, and
therefore not Debian-specific:

    error: invalid argument type 'ShaderClosure *' (aka 'struct ShaderClosure *') to unary expression

    error: invalid argument type 'MicrofacetExtra *' (aka 'struct MicrofacetExtra *') to unary expression

I have attached a patch to solve these Blender openCL errors. Perhaps
the bug submitter could confirm that it fixes these openCL compile
errors, and if so, submit a bug report to Blender, upstream. Of course,
I would prefer to be given credit for the patch.


-- Ian Bruce
--- blender/scripts/addons/cycles/kernel/closure/alloc.h.orig	2016-10-25 02:55:07.000000000 -0700
+++ blender/scripts/addons/cycles/kernel/closure/alloc.h	2017-03-10 00:59:12.191241611 -0800
@@ -62,7 +62,7 @@
 {
 	ShaderClosure *sc = closure_alloc(sd, size, CLOSURE_NONE_ID, weight);
 
-	if(!sc)
+	if(sc == 0)
 		return NULL;
 
 	float sample_weight = fabsf(average(weight));
--- blender/scripts/addons/cycles/kernel/closure/bsdf_microfacet.h.orig	2016-10-25 05:09:56.000000000 -0700
+++ blender/scripts/addons/cycles/kernel/closure/bsdf_microfacet.h	2017-03-10 00:58:32.140963906 -0800
@@ -266,7 +266,7 @@
 	       (bsdf_a->alpha_y == bsdf_b->alpha_y) &&
 	       (isequal_float3(bsdf_a->T, bsdf_b->T)) &&
 	       (bsdf_a->ior == bsdf_b->ior) &&
-	       ((!bsdf_a->extra && !bsdf_b->extra) ||
+	       ((bsdf_a->extra == 0 && bsdf_b->extra == 0) ||
             ((bsdf_a->extra && bsdf_b->extra) &&
 	         (isequal_float3(bsdf_a->extra->color, bsdf_b->extra->color))));
 }

Reply to: