AcademySoftwareFoundation / OpenShadingLanguage

Advanced shading language for production GI renderers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.

Lucretia opened this issue · comments

Problem

Rendering a simple scene in Blender on CPU with OSL enabled, no textures.

Expected behavior:
A render

Actual behavior:
A crash

/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
/var/tmp/portage/media-libs/osl-1.11.13.0/work/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451: call_function: Assertion 'llvm::isa<llvm::Function>(func)' failed.
--Type <RET> for more, q to quit, c to continue without paging--

Thread 47 "blender" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff2b7fe640 (LWP 10797)]
0x00007ffff2fe75d1 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff2fe75d1 in raise () at /lib64/libc.so.6
#1  0x00007ffff2fd1536 in abort () at /lib64/libc.so.6
#2  0x00007ffff749f1c2 in OSL_v1_11::pvt::LLVM_Util::call_function(llvm::Value*, OpenImageIO_v2_2::span<llvm::Value* const, -1l>)
    (this=this@entry=0x7fff2b7fb6a8, func=<optimized out>, args=...)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451
#3  0x00007ffff747ec38 in OSL_v1_11::pvt::llvm_gen_closure(OSL_v1_11::pvt::BackendLLVM&, int) (rop=..., opnum=<optimized out>)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_gen.cpp:3319
#4  0x00007ffff7490dd3 in OSL_v1_11::pvt::BackendLLVM::build_llvm_code(int, int, llvm::BasicBlock*)
    (this=0x7fff2b7fb620, beginop=<optimized out>, endop=3, bb=<optimized out>)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_instance.cpp:766
#5  0x00007ffff749476c in OSL_v1_11::pvt::BackendLLVM::build_llvm_instance(bool) (this=0x7fff2b7fb620, groupentry=<optimized out>)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/oslexec_pvt.h:1107
#6  0x00007ffff7495af9 in OSL_v1_11::pvt::BackendLLVM::run() (this=this@entry=0x7fff2b7fb620)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_instance.cpp:1283
#7  0x00007ffff73afd63 in OSL_v1_11::pvt::ShadingSystemImpl::optimize_group(OSL_v1_11::ShaderGroup&, OSL_v1_11::ShadingContext*, bool)
    (this=0x7fff34241300, group=..., ctx=<optimized out>, do_jit=<optimized out>)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/shadingsys.cpp:3090
#8  0x00007ffff73b2351 in OSL_v1_11::pvt::ShadingSystemImpl::optimize_all_groups(int, int, int, bool)
    (this=0x7fff34241300, nthreads=<optimized out>, mythread=<optimized out>, totalthreads=<optimized out>, do_jit=<optimized out>)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/shadingsys.cpp:3166
#9  0x00007ffff336b530 in  () at /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/libstdc++.so.6
#10 0x00007ffff7f37d16 in start_thread () at /lib64/libpthread.so.0
#11 0x00007ffff30a603f in clone () at /lib64/libc.so.6
(gdb) up
#1  0x00007ffff2fd1536 in abort () from /lib64/libc.so.6
(gdb) 
#2  0x00007ffff749f1c2 in OSL_v1_11::pvt::LLVM_Util::call_function (this=this@entry=0x7fff2b7fb6a8, func=<optimized out>, args=...)
    at /usr/src/debug/media-libs/osl-1.11.13.0/OpenShadingLanguage-Release-1.11.13.0/src/liboslexec/llvm_util.cpp:2451
2451        OSL_DASSERT(llvm::isa<llvm::Function>(func));
(gdb) list
2446        for (int i = 0, nargs = args.size();  i < nargs;  ++i)
2447            llvm::outs() << "\t" << *(args[i]) << "\n";
2448    #endif
2449        //llvm_gen_debug_printf (std::string("start ") + std::string(name));
2450    #if OSL_LLVM_VERSION >= 110
2451        OSL_DASSERT(llvm::isa<llvm::Function>(func));
2452        llvm::Value *r = builder().CreateCall(llvm::cast<llvm::Function>(func), llvm::ArrayRef<llvm::Value *>(args.data(), args.size()));
2453    #else
2454        llvm::Value *r = builder().CreateCall (func, llvm::ArrayRef<llvm::Value *>(args.data(), args.size()));
2455    #endif

Steps to Reproduce

  1. Open Blender, default cube.
  2. Click render tab on right.
  3. Select Render CPU.
  4. Select OSL.
  5. Press F12

Versions

  • OSL branch/version: 1.11.13.0 from git
  • OS: Linux rogue 5.11.15-gentoo-x86_64 #1 SMP PREEMPT Mon Apr 19 15:21:21 BST 2021 x86_64 AMD FX(tm)-8350 Eight-Core Processor AuthenticAMD GNU/Linux
  • C++ compiler: gcc version 10.3.0 (Gentoo 10.3.0 p1)
  • LLVM version: 11.1.0
  • OIIO version: 2.2.12.0
  • Blender version: 2.92.0

This looks like a duplicate of #1359, which is fixed by #1361.
Closing, because a fix is on the way.