Base closure pointer in layer is incorrect when using batched execute #1801
Labels
batch shading
Specific to the SIMD batch shading back end
bug
Crash or wrong behavior of an existing feature.
shading system
Related to the runtime shader execution
Problem
Base closure pointer in osl layer points to its parent layer closure when using batched execute while it should actually point to a diffuse closure.
minimal_test_case.zip
Steps to Reproduce
Download the attached minimal sample and issue the following commands:
g++ -DUSE_BATCHED -mavx2 -mfma -mtune=skylake -mf16c -g test2.cpp -loslcomp -loslexec -loslnoise -loslquery -lOpenImageIO -lOpenImageIO_Util
./a.out
parsing mx layer closure
parsing generalized schlick closure
Error: base closure in mx layer points back to currently parsed closure
g++ -mavx2 -mfma -mtune=skylake -mf16c -g test2.cpp -loslcomp -loslexec -loslnoise -loslquery -lOpenImageIO -lOpenImageIO_Util
./a.out
parsing mx layer closure
parsing generalized schlick closure
parsing diffuse closure
<correct output, no problem!>
Here's .osl shader codes in the .zip:
Versions
The text was updated successfully, but these errors were encountered: