Ticket #488 (new defect)

Opened 5 months ago

Last modified 4 months ago

Crash in csGraphics2DGLCommon::BeginDraw (fp division by zero)

Reported by: thebolt Owned by: res
Priority: blocker Milestone:
Component: renderer Version: V1.9
Keywords: Cc: xordan

Description

In some (but not all) test levels walktest will crash with following back trace

>	crystalspace_opengl-1.9-vc9_d.dll!csGraphics2DGLCommon::BeginDraw()  Line 282 + 0x3 bytes	C++
 	csconout.dll!CS::Plugin::ConOut::csConsoleOutput::PutTextV(const char * text2=0x02435918, char * args=0x0012dc3c)  Line 249 + 0x42 bytes	C++
 	csconout.dll!CS::Plugin::ConOut::csConsoleOutput::PutText(const char * iText=0x02435918, ...)  Line 67	C++
 	stdrep.dll!CS::Plugin::StdRep::csReporterListener::WriteLine(int severity=3, const char * msgID=0x08aa8174, const char * line=0x0836a728)  Line 265 + 0x32 bytes	C++
 	stdrep.dll!CS::Plugin::StdRep::csReporterListener::Report(iReporter * __formal=0x00c449f0, int severity=3, const char * msgID=0x08aa8174, const char * description=0x0012e320)  Line 339 + 0x4b bytes	C++
 	reporter.dll!csReporter::ActualReport(const csRefArray<iReporterListener,CS::Memory::AllocatorMalloc,csArrayCapacityFixedGrow<16> > & listeners={...}, int severity=3, const char * msgId=0x08aa8174, const char * buf=0x0012e320)  Line 100 + 0x34 bytes	C++
 	reporter.dll!csReporter::ReportV(int severity=3, const char * msgId=0x08aa8174, const char * description=0x08aa9908, char * arg=0x0012e748)  Line 169	C++
 	glshader_cg.dll!csReporterHelper::ReportV(iObjectRegistry * reg=0x00c6f9b8, int severity=3, const char * msgId=0x08aa8174, const char * description=0x08aa9908, char * args=0x0012e748)  Line 336	C++
 	glshader_cg.dll!CS::Plugin::GLShaderCg::csGLShader_CG::Report(int severity=3, const char * msg=0x08aa9908, ...)  Line 267 + 0x1d bytes	C++
 	glshader_cg.dll!CS::Plugin::GLShaderCg::csShaderGLCGCommon::DefaultLoadProgram(CS::Plugin::GLShaderCg::iShaderDestinationResolverCG * cgResolve=0x00000000, const char * programStr=0x0837c868, CGGLenum type=CG_GL_FRAGMENT, CGprofile maxProfile=CG_PROFILE_UNKNOWN, unsigned int flags=4)  Line 626 + 0x53 bytes	C++
 	glshader_cg.dll!CS::Plugin::GLShaderCg::csShaderGLCGFP::Compile()  Line 186 + 0x2d bytes	C++
 	xmlshader.dll!CS::Plugin::XMLShader::csXMLShaderTech::LoadProgram(iShaderDestinationResolver * resolve=0x00000000, iDocumentNode * node=0x062291e8, CS::Plugin::XMLShader::csXMLShaderTech::ShaderPass * __formal=0x06230344, unsigned int variant=483861)  Line 508 + 0x21 bytes	C++
 	xmlshader.dll!CS::Plugin::XMLShader::csXMLShaderTech::LoadPass(iDocumentNode * node=0x06364e18, CS::Plugin::XMLShader::csXMLShaderTech::ShaderPass * pass=0x06230344, unsigned int variant=483861)  Line 82 + 0x22 bytes	C++
 	xmlshader.dll!CS::Plugin::XMLShader::csXMLShaderTech::Load(iLoaderContext * ldr_context=0x00000000, iDocumentNode * node=0x06346a50, iDocumentNode * parentSV=0x05ddec98, unsigned int variant=483861)  Line 607 + 0x31 bytes	C++
 	xmlshader.dll!CS::Plugin::XMLShader::csXMLShader::GetTicket(const CS::Graphics::RenderMeshModes & modes={...}, const csShaderVariableStack & stack={...})  Line 959 + 0x35 bytes	C++
 	shaderweaver.dll!CS::Plugin::ShaderWeaver::WeaverShader::GetTicket(const CS::Graphics::RenderMeshModes & modes=, const csShaderVariableStack & stack={...})  Line 108	C++
 	rm_unshadowed.dll!CS::RenderManager::TicketSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers>::operator()(CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::MeshNode * node=0x05df1fa0)  Line 128 + 0x42 bytes	C++
 	rm_unshadowed.dll!CS::Meta::CompositeFunctorType2<CS::RenderManager::TicketSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers>,CS::RenderManager::ShaderSVSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers> >::operator()<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::MeshNode * const>(CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::MeshNode * const & a1=0x05df1fa0)  Line 45	C++
 	rm_unshadowed.dll!CS::RenderManager::Implementation::OperationCaller<CS::Meta::CompositeFunctorType2<CS::RenderManager::TicketSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers>,CS::RenderManager::ShaderSVSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers> >,CS::RenderManager::Implementation::NoOperationBlock<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::MeshNode *>,CS::RenderManager::OperationUnordered>::operator()<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::MeshNode *>(CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::MeshNode * const & context=0x05df1fa0)  Line 250	C++
 	rm_unshadowed.dll!CS::RenderManager::ForEachMeshNode<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::ContextNode,CS::Meta::CompositeFunctorType2<CS::RenderManager::TicketSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers>,CS::RenderManager::ShaderSVSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers> > >(CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::ContextNode & context={...}, CS::Meta::CompositeFunctorType2<CS::RenderManager::TicketSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers>,CS::RenderManager::ShaderSVSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers> > & fn={...})  Line 552	C++
 	rm_unshadowed.dll!CS::RenderManager::SetupStandardTicket<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::ContextNode,CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers>(CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::ContextNode & context={...}, iShaderManager * shaderManager=0x00c4c580, const CS::RenderManager::LightSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer,CS::RenderManager::ShadowNone<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::PostLightingLayers & layerConfig={...})  Line 208 + 0xd bytes	C++
 	rm_unshadowed.dll!CS::Plugin::RMUnshadowed::StandardContextSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer>::operator()(CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>::ContextNode & context={...}, CS::RenderManager::StandardPortalSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::Plugin::RMUnshadowed::StandardContextSetup<CS::RenderManager::RenderTree<CS::RenderManager::RenderTreeStandardTraits>,CS::RenderManager::MultipleRenderLayer> >::ContextSetupData & portalSetupData={...})  Line 130 + 0x16 bytes	C++
 	rm_unshadowed.dll!CS::Plugin::RMUnshadowed::RMUnshadowed::RenderView(iView * view=0x0621b790)  Line 186	C++
 	engine.dll!csSector::PrecacheDraw()  Line 302	C++
 	engine.dll!csEngine::PrecacheDraw(iCollection * collection=0x00000000)  Line 1485	C++
 	walktest.exe!WalkTest::Initialize(int argc=3, const char * const * argv=0x00bb3d78, const char * iConfigName=0x0047bb14)  Line 1223	C++
 	walktest.exe!main(int argc=3, char * * argv=0x00bb3d78)  Line 1377 + 0x18 bytes	C++
 	walktest.exe!__tmainCRTStartup()  Line 582 + 0x19 bytes	C
 	walktest.exe!mainCRTStartup()  Line 399	C

Crash happens during the "PrecacheDraw" call, but not the first time BeginDraw is called.

Unshadowed RM and no custom shaders in use.

Attachments

test1.zip (487.1 kB) - added by thebolt 5 months ago.
Test level showing crash

Change History

Changed 5 months ago by thebolt

Test level showing crash

Changed 5 months ago by xordan

I've got a similar (or identical) divide by zero error in the water level.

For me it happens inside cgCompileProgram however (glshader_cgcommon.cpp:721).

Changed 5 months ago by xordan

  • cc xordan added

I just had this in the castle level also. It only happened after a couple of laps of the level though, not right away like in the water level.

Changed 4 months ago by res

NVidia made a new build with bug fixes available for Cg, one that is newer than the one in cs-win32libs: http://developer.download.nvidia.com/cg/Cg_2.0/cg-redist-2.0.0016.zip - Using the DLLs from that package make a difference?

Add/Change #488 (Crash in csGraphics2DGLCommon::BeginDraw (fp division by zero))

Author



Action
as new
 
Note: See TracTickets for help on using tickets.