-
|
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 5 replies
-
Hi @tomas16 ,
I'm able to reproduce this with a local toy example within a loop, and given that this used to work previously, I would be inclined to say that this indeed is a legitimate bug. With respect to dr.scatter(out_xyz, si.p, idx, active) because dr.scatter(out_xyz, si.p.x, idx*3 + 0)
dr.scatter(out_xyz, si.p.y, idx*3 + 1)
dr.scatter(out_xyz, si.p.z, idx*3 + 2) and so it's the same issue as with
I don't think debug mode necessarily will find anything so I believe this is ok. What it is useful for is for tracking things such as out-of-bounds gathers/scatters and should then hopefully report something. |
Beta Was this translation helpful? Give feedback.
-
Hi @rtabbara, that makes sense. How would you explain that the two scatters to |
Beta Was this translation helpful? Give feedback.
-
Hi @tomas16 , An update on this — the latest Mitsuba As an aside, just to highlight a potential pitfall, in evaluated mode, Dr.Jit tries to be conservative with respect to sequences of scatters to the same target to avoid write conflicts. So in particular, by default, it will evaluate the target prior to a subsequent scatter (which is why you initially encountered this bug in the symbolic scope). If you know that your write indices are independent across scatters, you use the argument All of this is to say, that when we're in a symbolic loop body, obviously these conservative checks can no longer be used because we can no longer evaluate the target within the loop body. So whether you have one or multiple scatters is irrelevant — there is still an implicit assumption that scatters to the same target within the loop body have to have no write conflicts across iterations (and within the body itself). You're probably aware of this, but maybe it's good to highlight to other users too. Anyway, I'll mark this discussion as answered, but if you encounter any other issues with regards to the port, please add independent issues and we'll track them. |
Beta Was this translation helpful? Give feedback.
Hi @tomas16 ,
An update on this — the latest Mitsuba
master
should have incorporated fixes to support multiplescatter
calls to the same target within a symbolic loop. If you have a chance to pull the latest and try it out that would be great.As an aside, just to highlight a potential pitfall, in evaluated mode, Dr.Jit tries to be conservative with respect to sequences of scatters to the same target to avoid write conflicts. So in particular, by default, it will evaluate the target prior to a subsequent scatter (which is why you initially encountered this bug in the symbolic scope). If you know that your write indices are independent across scatters, you use the argument
mode=drjit.Reduc…