Bug #993
Floating Point Exception in NL3D::CDriverGL::getModes on Linux
| Status: | Closed | Start date: | 06/22/2010 | |
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assignee: | % 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 5 years ago
Maybe because your 2 screens have different frequencies ?
#2
Updated by kervala about 5 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 5 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Applied in changeset r395.
#4
Updated by incant about 5 years ago
You made a typo. :-)
s/pixelCount/pixelsCount/
#5
Updated by kervala about 5 years ago
Argh sorry :( Thanks again for reporting :)
#6
Updated by kervala about 5 years ago
Applied in changeset r397.
#7
Updated by kervala almost 5 years ago
- Status changed from Resolved to Closed
#8
Updated by kervala almost 5 years ago
- Category changed from NeL: General to OS: GNU/Linux