Bug #993
Floating Point Exception in NL3D::CDriverGL::getModes on Linux
Status: | Closed | Start date: | 06/22/2010 | |
---|---|---|---|---|
Priority: | High | Due date: | ||
Assignee: | kervala | % Done: | 100% |
|
Category: | OS: GNU/Linux | |||
Target version: | Version 0.8.0 |
Description
Built as per instructions linked from the wiki's side bar. Launched ryzom_client in ryzom_client_open directory.
Changeset: 383:532ebe743a92
Running Debian Lenny 5.0.1 Linux 2.6.26-2-486 #1 Tue Mar 9 17:10:34 UTC 2010 i686 GNU/Linux
Video card: Radeon HD 2600 with fglrx drivers
[New Thread 0xb2211b90 (LWP 11546)] INF b2211b90 login.cpp 733 initLoginScreen <Unknown> : Using verbose log mode INF b59a8a40 login.cpp 1894 execute <Unknown> : CAHInitResLod called DBG b59a8a40 driver_opengl_window.cpp 1196 getModes <Unknown> : 3D: 37 available modes: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 0xb59a8a40 (LWP 11542)] 0xb4f5b402 in NL3D::CDriverGL::getModes (this=0xa14bf78, modes=@0xbfffd300) at /home/philippe/ryzom/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp:1203 1203 mode.Frequency = 1000 * ms[j]->dotclock / (ms[j]->htotal * ms[j]->vtotal); Current language: auto; currently c++ (gdb) backtrace full #0 0xb4f5b402 in NL3D::CDriverGL::getModes (this=0xa14bf78, modes=@0xbfffd300) at /home/philippe/ryzom/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp:1203 mode = {OffScreen = false, Windowed = false, Width = 3840, Height = 1080, Depth = 0 '\0', Frequency = 0, AntiAlias = -1 '�'} j = 0 nmodes = 37 ms = (<anonymous struct> **) 0xaa7b050 ok = 1 __FUNCTION__ = "getModes" #1 0xb6c5ce82 in NL3D::CDriverUser::getModes (this=0x9fe8d28, modes=@0x8b9b21c) at /home/philippe/ryzom/code/nel/src/3d/driver_user.cpp:299 vTmp = {<std::_Vector_base<NL3D::GfxMode, std::allocator<NL3D::GfxMode> >> = {_M_impl = {<std::allocator<NL3D::GfxMode>> = {<__gnu_cxx::new_allocator<NL3D::GfxMode>> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>} res = 183 #2 0x083017ae in CAHInitResLod::execute () No locals. #3 0x086dd0ca in CInterfaceManager::runActionHandler () No locals. #4 0x089f2695 in CInterfaceGroup::setActive () No locals. #5 0x088eb6d4 in affect () No locals. #6 0x088ece23 in CInterfaceLink::update () No locals. #7 0x088ed1c9 in CInterfaceLink::updateTrigeredLinks () No locals. #8 0x083e035c in CCDBNodeBranch::flushObserversCalls () No locals. #9 0x082ea66d in loginMainLoop () No locals. #10 0x082f1eee in login () No locals. #11 0x082b1fb5 in main () No locals.
The offending portion is probably the division. Looks like it:
(gdb) p ms[j][0]
$4 = {dotclock = 0, hdisplay = 3840, hsyncstart = 0, hsyncend = 0, htotal = 0, hskew = 0, vdisplay = 1080, vsyncstart = 0, vsyncend = 0, vtotal = 0, flags = 0, privsize = 0, c_private = 0x0}
My knowledge of anything else stops here. What's happening? Why are these values zero?
History
#1 Updated by kervala about 8 years ago
Maybe because your 2 screens have different frequencies ?
#2 Updated by kervala about 8 years ago
- Status changed from New to Assigned
- Assignee set to kervala
- Priority changed from Normal to High
- Target version set to Version 0.8.0
Thanks a lot for your detailed report :)
#3 Updated by kervala about 8 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Applied in changeset r395.
#4 Updated by incant about 8 years ago
You made a typo. :-)
s/pixelCount/pixelsCount/
#5 Updated by kervala about 8 years ago
Argh sorry :( Thanks again for reporting :)
#6 Updated by kervala about 8 years ago
Applied in changeset r397.
#7 Updated by kervala about 8 years ago
- Status changed from Resolved to Closed
#8 Updated by kervala about 8 years ago
- Category changed from NeL: General to OS: GNU/Linux