【SOLVED】Error when using OpenGL Rop with Rop Fetch Top node

   Views 4117   Replies 7   Subscribers 2
User Avatar
Member
22 posts
Joined: May 2015
Offline
Hi,

I get the following error when using OpenGL Rop with Rop Fetch Top node on Linux mint 20.3.

This problem occurs when using OpenGL rop with Rop fetch Top node, and OpenGL Rop by itself works fine.

---
Running Houdini 19.5.605 with PID 2789
HFS = '/opt/hfs19.5.605'
HOUDINI_TEMP_DIR = '/tmp/houdini_temp'
HOUDINI_PATH = '/tmp/houdini_temp/pdg_test/pdgtemp/2722:/opt/sidefx_packages/SideFXLabs19.5:/opt/hfs19.5.605/packages/kinefx:/home/shigeru/houdini19.5/packages/axiom3.0.122/houdini19.5.605:/home/shigeru/houdini19.5/packages/axiom3.0.122/houdini:&'
Loading .hip file '/home/shigeru/Downloads/pdg_test.hipnc'...
WARNING: Entered non-commercial session mode.
.hip file done loading
ROP node path '/out/opengl1'
ROP type name: 'opengl'
ROP source path: '/opt/hfs19.5.605/houdini/dso/ROP_OpenGL.so'
Checking for output parm(s) 'picture' on node '/out/opengl1'
Cooking node using 'hou.Rop.render'
2789: Fatal error: Segmentation fault (sent by pid 799)
-- TRACEBACK BEGIN --
Traceback from hython 19.5.605 (Compiled on linux-x86_64-gcc9.3):
stackTrace(UTsignalHandlerArg) <libHoudiniUT.so>
signalCallback(UTsignalHandlerArg) <libHoudiniUT.so>
UT_Signal::UT_ComboSignalHandler::operator()(int, siginfo_t*, void*) const <libHoudiniUT.so>
UT_Signal::processSignal(int, siginfo_t*, void*) <libHoudiniUT.so>
_dl_find_dso_for_object <ld-linux-x86-64.so.2>
_dl_find_dso_for_object <ld-linux-x86-64.so.2>
_dl_catch_exception <libc.so.6>
_dl_catch_error <libc.so.6>
dlerror <libdl.so.2>
dlclose <libdl.so.2>
RE_OGLExt::setupTheExtensions() <libHoudiniUI.so>
RE_OGLExt::initialize() <libHoudiniUI.so>
RE_OGLRender::initGLExtensions() <libHoudiniUI.so>
RE_OGLRender::initGLState() <libHoudiniUI.so>
RE_OGLRender::makeCurrent(bool) <libHoudiniUI.so>
RE_OGLRender::lockContextForRender() <libHoudiniUI.so>
RE_Window::openWindow() <libHoudiniUI.so>
RE_OGLComputeGPUState::initStandalone(bool) <libHoudiniUI.so>
ROP_OpenGL::startRender(int, double, double) <ROP_OpenGL.so>
ROP_Node::executeSingle(double, ROP_Verbose*, SOHO_IPRList*, ROP_SohoOutput*, bool) <libHoudiniOP4.so>
ROP_RenderItem::render(ROP_Verbose*, int, int) const <libHoudiniOP4.so>
ROP_RenderManager::renderOrder(ROP_RenderList const&, bool, ROP_Verbose*) <libHoudiniOP4.so>
ROP_RenderManager::render(ROP_Node*, double, double, double, bool, bool, bool, bool, bool, bool, ROP_Verbose*) <libHoudiniOP4.so>
ROP_Node::renderCommand(ROP_RenderCmdParms&) <libHoudiniOP4.so>
HOMF_RopNode::render(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, char const*, char const*, bool, int, bool, HOM_EnumValue&, bool, bool, bool, bool) <libHoudiniOPZ.so>
_wrap_RopNode_render <_hou.so>
cfunction_call <libpython3.9.so.1.0>
_PyObject_Call <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyEval_EvalCode <libpython3.9.so.1.0>
method_vectorcall <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyFunction_Vectorcall.localalias <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyFunction_Vectorcall.localalias <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyFunction_Vectorcall.localalias <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyFunction_Vectorcall.localalias <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyFunction_Vectorcall.localalias <libpython3.9.so.1.0>
_PyEval_EvalFrameDefault <libpython3.9.so.1.0>
_PyEval_EvalCode <libpython3.9.so.1.0>
_PyEval_EvalCodeWithName <libpython3.9.so.1.0>
PyEval_EvalCodeEx <libpython3.9.so.1.0>
PyEval_EvalCode <libpython3.9.so.1.0>
run_eval_code_obj <libpython3.9.so.1.0>
run_mod <libpython3.9.so.1.0>
pyrun_file <libpython3.9.so.1.0>
PyRun_SimpleFileExFlags <libpython3.9.so.1.0>
Py_RunMain <libpython3.9.so.1.0>
Py_Main <libpython3.9.so.1.0>
_init <hython-bin>
__libc_start_main <libc.so.6>
_init <hython-bin>
-- TRACEBACK END --



I opened the attached file in Windows 11 installed on the same PC and no error appeared, so I thought it was a problem that occurs only in my environment (Ryzen9 7950x + RTX4090), but I found the same problem on another machine with Rocky Linux 8.7 installed.

Does anyone know how to solve this problem?

Thanks in advance.

Shigeru,
Edited by Shigeru Iriki - May 25, 2023 22:13:48

Attachments:
pdg_test.hipnc (173.4 KB)

User Avatar
Member
22 posts
Joined: May 2015
Offline
I checked if the same problem occurs with linux mint 19.3 and it still happens.And even after installing Python 3.7 version of Houdini and downgrading NVIDIA driver from 530.41.03 to 515.105.1.0, the problem still occurs.

---
Running Houdini 19.5.605 with PID 2591
HFS = '/opt/hfs19.5.605'
HOUDINI_TEMP_DIR = '/tmp/houdini_temp'
HOUDINI_PATH = '/tmp/houdini_temp/ropfet_test.v01/pdgtemp/2184:/opt/sidefx_packages/SideFXLabs19.5:/opt/hfs19.5.605/packages/kinefx:&'
Loading .hip file '/home/shigeru/ropfetch_test/ropfet_test.v01.hip'...
.hip file done loading
ROP node path '/out/opengl1'
ROP type name: 'opengl'
ROP source path: '/opt/hfs19.5.605/houdini/dso/ROP_OpenGL.so'
Checking for output parm(s) 'picture' on node '/out/opengl1'
Cooking node using 'hou.Rop.render'
2591: Fatal error: Segmentation fault (sent by pid 980)
-- TRACEBACK BEGIN --
Traceback from hython 19.5.605 (Compiled on linux-x86_64-gcc9.3):
stackTrace(UTsignalHandlerArg) <libHoudiniUT.so>
signalCallback(UTsignalHandlerArg) <libHoudiniUT.so>
UT_Signal::UT_ComboSignalHandler::operator()(int, siginfo_t*, void*) const <libHoudiniUT.so>
UT_Signal::processSignal(int, siginfo_t*, void*) <libHoudiniUT.so>
_dl_close (dl-close.c:819)
_dl_close (dl-close.c:812)
__GI__dl_catch_exception (dl-error-skeleton.c:196)
__GI__dl_catch_error (dl-error-skeleton.c:215)
_dlerror_run (dlerror.c:162)
__dlclose (dlclose.c:46)
RE_OGLExt::setupTheExtensions() <libHoudiniUI.so>
RE_OGLExt::initialize() <libHoudiniUI.so>
RE_OGLRender::initGLExtensions() <libHoudiniUI.so>
RE_OGLRender::initGLState() <libHoudiniUI.so>
RE_OGLRender::makeCurrent(bool) <libHoudiniUI.so>
RE_OGLRender::lockContextForRender() <libHoudiniUI.so>
RE_Window::openWindow() <libHoudiniUI.so>
RE_OGLComputeGPUState::initStandalone(bool) <libHoudiniUI.so>
ROP_OpenGL::startRender(int, double, double) <ROP_OpenGL.so>
ROP_Node::executeSingle(double, ROP_Verbose*, SOHO_IPRList*, ROP_SohoOutput*, bool) <libHoudiniOP4.so>
ROP_RenderItem::render(ROP_Verbose*, int, int) const <libHoudiniOP4.so>
ROP_RenderManager::renderOrder(ROP_RenderList const&, bool, ROP_Verbose*) <libHoudiniOP4.so>
ROP_RenderManager::render(ROP_Node*, double, double, double, bool, bool, bool, bool, bool, bool, ROP_Verbose*) <libHoudiniOP4.so>
ROP_Node::renderCommand(ROP_RenderCmdParms&) <libHoudiniOP4.so>
HOMF_RopNode::render(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, char const*, char const*, bool, int, bool, HOM_EnumValue&, bool, bool, bool, bool) <libHoudiniOPZ.so>
_wrap_RopNode_render <_hou.so>
PyCFunction_Call (call.c:755)
_PyEval_EvalFrameDefault (ceval.c:4641)
_PyEval_EvalCodeWithName (ceval.c:3930)
_PyFunction_FastCallKeywords (call.c:433)
call_function (ceval.c:4616)
_PyEval_EvalFrameDefault (ceval.c:3139)
function_code_fastcall (call.c:283)
call_function (ceval.c:4616)
_PyEval_EvalFrameDefault (ceval.c:3110)
function_code_fastcall (call.c:283)
call_function (ceval.c:4616)
_PyEval_EvalFrameDefault (ceval.c:3110)
function_code_fastcall (call.c:283)
call_function (ceval.c:4616)
_PyEval_EvalFrameDefault (ceval.c:3110)
function_code_fastcall (call.c:283)
call_function (ceval.c:4616)
_PyEval_EvalFrameDefault (ceval.c:3124)
function_code_fastcall (call.c:283)
call_function (ceval.c:4616)
_PyEval_EvalFrameDefault (ceval.c:3124)
_PyEval_EvalCodeWithName (ceval.c:3930)
PyEval_EvalCodeEx (ceval.c:3959)
PyEval_EvalCode (ceval.c:524)
PyRun_FileExFlags (pythonrun.c:1037)
PyRun_SimpleFileExFlags (pythonrun.c:429)
pymain_main (main.c:456)
Py_Main (main.c:3091)
_init <hython-bin>
__libc_start_main (libc-start.c:310)
_init <hython-bin>
-- TRACEBACK END --

Attachments:
Screenshot from 2023-05-11 16-56-27.png (107.7 KB)
Screenshot from 2023-05-11 16-56-07.png (1.1 MB)

User Avatar
Member
22 posts
Joined: May 2015
Offline
I'm surprised that same trouble happens even if I tested with Houdini 19. But, if I tried Rop Fetch Top with Mantra rop, it works fine...

Attachments:
Screenshot from 2023-05-11 17-52-21.png (581.9 KB)

User Avatar
Member
22 posts
Joined: May 2015
Offline
I ran OpenGL ROP on hbatch to see if it was an OpenGL ROP issue or a Rop fetch TOP node issue and got the following error.

2247: Fatal error: Segmentation fault (sent by pid 980)
-- TRACEBACK BEGIN --
Traceback from hbatch 19.5.605 (Compiled on linux-x86_64-gcc9.3):
stackTrace(UTsignalHandlerArg) <libHoudiniUT.so>
signalCallback(UTsignalHandlerArg) <libHoudiniUT.so>
UT_Signal::UT_ComboSignalHandler::operator()(int, siginfo_t*, void*) const <libHoudiniUT.so>
UT_Signal::processSignal(int, siginfo_t*, void*) <libHoudiniUT.so>
_dl_close (dl-close.c:819)
_dl_close (dl-close.c:812)
__GI__dl_catch_exception (dl-error-skeleton.c:196)
__GI__dl_catch_error (dl-error-skeleton.c:215)
_dlerror_run (dlerror.c:162)
__dlclose (dlclose.c:46)
RE_OGLExt::setupTheExtensions() <libHoudiniUI.so>
RE_OGLExt::initialize() <libHoudiniUI.so>
RE_OGLRender::initGLExtensions() <libHoudiniUI.so>
RE_OGLRender::initGLState() <libHoudiniUI.so>
RE_OGLRender::makeCurrent(bool) <libHoudiniUI.so>
RE_OGLRender::lockContextForRender() <libHoudiniUI.so>
RE_Window::openWindow() <libHoudiniUI.so>
RE_OGLComputeGPUState::initStandalone(bool) <libHoudiniUI.so>
ROP_OpenGL::startRender(int, double, double) <ROP_OpenGL.so>
ROP_Node::startExecute(double, ROP_Verbose*) <libHoudiniOP4.so>
ROP_Node::execute(double, ROP_Verbose*) <libHoudiniOP4.so>
ROP_RenderItem::render(ROP_Verbose*, int, int) const <libHoudiniOP4.so>
ROP_RenderManager::renderOrder(ROP_RenderList const&, bool, ROP_Verbose*) <libHoudiniOP4.so>
ROP_RenderManager::render(ROP_Node*, double, double, double, bool, bool, bool, bool, bool, bool, ROP_Verbose*) <libHoudiniOP4.so>
ROP_Node::renderCommand(ROP_RenderCmdParms&) <libHoudiniOP4.so>
ROP_Node::doRenderCommand(CMD_Args&, OP_Node*, bool) <libHoudiniOP4.so>
ROP_Node::cmdRender(CMD_Args&) <libHoudiniOP4.so>
CMD_Manager::runCommand(char*) <libHoudiniPRM.so>
CMD_Manager::internalExecute(char const*) <libHoudiniPRM.so>
CMD_Manager::processInput(CMD_Source*, char const*) <libHoudiniPRM.so>
CMD_Manager::internalSendInput(char const*, bool) <libHoudiniPRM.so>
CMD_Manager::sendInputNoLock(char const*, bool) <libHoudiniPRM.so>
tbb::interface7::internal::task_arena_base::internal_execute(tbb::interface7::internal::delegate_base&) const <libtbb.so.2>
TBBPROXY_TaskArenaExecute <libTBBPROXY.so>
CMD_Manager::sendInput(char const*, bool) <libHoudiniPRM.so>
_init <hbatch-bin>
__libc_start_main (libc-start.c:310)
_init <hbatch-bin>
-- TRACEBACK END --

After communication with SideFX Support, I was able to solve the problem by preloading the HoudiniUI by writing the following in the .bashrc.

export LD_PRELOAD=/opt/hfs19.5/dsolib/libHoudiniUI.so

cd /opt/hfs19.5
source houdini_setup
cd $home
User Avatar
Member
1 posts
Joined: July 2023
Offline
Hi im facing the same issue actually, and im wondering in which file did you add this exactly ?
export LD_PRELOAD=/opt/hfs19.5/dsolib/libHoudiniUI.so

cd /opt/hfs19.5
source houdini_setup
cd $home
User Avatar
Member
22 posts
Joined: May 2015
Offline
.bashrc. It is a hidden file inside your home directory.

icedflorent
Hi im facing the same issue actually, and im wondering in which file did you add this exactly ?
export LD_PRELOAD=/opt/hfs19.5/dsolib/libHoudiniUI.so

cd /opt/hfs19.5
source houdini_setup
cd $home
User Avatar
Member
15 posts
Joined: Dec. 2018
Offline
Same issue in 20.724, fixed it following the above suggestion with this script:

export LD_PRELOAD=/opt/hfs20.0/dsolib/libHoudiniUI.so
cd /opt/hfs20.0
source houdini_setup
cd -
/opt/hfs20.0/bin/hindie
User Avatar
Member
9 posts
Joined: March 2016
Offline
Hi guys,

I found this topic while fighting the same issue of OpenGL ROP not rendering when executing with the TOP network. Even though my post is 1-2 years later compared to the discussion I still want to add my 50 cents hoping it will help somebody in the future

So, first of all, the reason why OpenGL ROP not working in TOP is that by default the ROP OpenGL Render TOP node launches its tasks in Out-of-Process mode. This means starting a new Houdini session without GUI and doing the task's calculation in the background. But the problem is OpenGL, as it exists now, requires some GUI canvas for initialization and rendering. I'm not sure about another OS but for me, under Linux, this works like this. The same situation with error will be if you start OpenGL ROP rendering using the command prompt because at the end no GUI canvas exists.

The issue, as you may understand, is not related to Houdini itself, it's an OpenGL issue or better say the logic of how it was built and works.

One solution that works for TOP is just to change the ROP OpenGL Render TOP node from Out-of-Process to In-Process mode. That launch tasks execution for this TOP node in the same opened Houdini program and OpenGL will get all it needs for the proper initialization and rendering. But it won't solve the issue with command prompt launch of the scene execution.

The solution that SideFX support suggests works great even in the command prompt and scripts! So, thanks, guys, for sharing this! It helped me to solve the issue with OpenGL!
  • Quick Links