Horde3D
http://horde3d.org/forums/

Crash in RendererBase::releaseTexture during Pipeline init
http://horde3d.org/forums/viewtopic.php?f=3&t=1153
Page 1 of 1

Author:  AlexL [ 26.04.2010, 11:15 ]
Post subject:  Crash in RendererBase::releaseTexture during Pipeline init

Horde (respective the GL driver) crashes during loading of a Pipeline resource if it fails to allocate a RenderTarget.
Callstack:
Code:
#4  0xb3e627ba in glDeleteTextures (n=1, ids=0x4f633cf0) at ../../../OpenGL/gl_hash.h:365
#5  0xaabd8e5b in RendererBase::releaseTexture(unsigned int) () libHorde3D.so
#6  0xaabda17d in RendererBase::releaseRenderBuffer(unsigned int) () libHorde3D.so
#7  0xaabcc2bf in PipelineResource::releaseRenderTargets() () libHorde3D.so
#8  0xaabc8a82 in PipelineResource::release() () libHorde3D.so
#9  0xaabc8cdf in PipelineResource::raiseError(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) () libHorde3D.so
#10 0xaabcd1c4 in PipelineResource::load(char const*, int) () libHorde3D.so
#11 0xaabaaf4e in h3dLoadResource () libHorde3D.so
#12 0xaaae5808 in h3dutLoadResourcesFromDisk () libHorde3DUtils.so
Problem: Neither addRenderTarget nor RenderTarget's ctor initialize RenderTarget's rendBuf member.
So if a rendertarget cannot be allocated (not enough samples in my case) Horde notifies an error (raiseError) and releases the rendertargets (all of them, created or not).
Hence, there needs to be a proper rendBuf = 0 init in RenderTarget and a 0-check before the call to RendererBase::releaseTexture.

I attached a patch (SVN diff format), which fixes the problem.

Attachments:
patch-pipeline-bug.txt [671 Bytes]
Downloaded 768 times

Author:  Volker [ 28.04.2010, 07:34 ]
Post subject:  Re: Crash in RendererBase::releaseTexture during Pipeline init

Thanks for the patch, I integrated it into the SVN.

Page 1 of 1 All times are UTC + 1 hour
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/