Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007570 [FPC] Packages major always 2006-10-08 16:30 2007-01-01 20:41
Reporter Michalis Kamburelis View Status public  
Assigned To Florian Klämpfl
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0007570: gl unit needs Set8087CW under Linux too
Description This is similar to issue 0005914 where I described why Set8087CW call is needed on Win32 at the initialization of GL unit. In short, that's because OpenGL libraries under Win32 may produce (under valid circumstances) some exceptions that should be ignored.

As it comes out, under Linux some OpenGL implementations do it too.

1. With NVidia graphic card. I have GeForce FX 5200, using NVidia driver and OpenGL implementation version 1.0-8774. (But I realized that I already saw this bug on other NVidia cards and with older driver versions). If you try to create a context without depth buffer, then the first try to set this context as current will result in div by zero exception.

This is reproducible on my system with opengl package examples. glxtest fails inside glXMakeCurrent call. bounce (the only GLUT test that doesn't request depth buffer) fails inside glutCreateWindow (this makes sense, since glutCreateWindow calls glXMakeCurrent internally).

2. Open-source Radeon drivers may also cause this --- I don't have any simple example to reproduce this, but it was experienced Daniel Mantione when running my game "The Castle". The graphic card was Radeon Mobility M7. Error occured as soon as "New Game" was chosen: EDivByZero was raised from inside of glCallList inside TVRMLFlatSceneGL.SSS_RenderShapeState. Disabling fp exceptions fixed the problem.

Summary: we have to make Set8087CW call in the initialization of GL unit for Linux too. Probably FreeBSD also requires this (since NVidia OpenGL on FreeBSD probably also causes this problem). I think that the safest solution is to make Set8087CW($133F); just work on all systems (i.e., remove the "$IFDEF WIN32" around it).
Additional Information
Tags No tags attached.
FPCOldBugId 0
Fixed in Revision 4834
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2006-10-08 16:30 Michalis Kamburelis New Issue
2006-10-08 18:36 Florian Klämpfl Fixed in Revision => 4834
2006-10-08 18:36 Florian Klämpfl Status new => resolved
2006-10-08 18:36 Florian Klämpfl Fixed in Version => 2.1.1
2006-10-08 18:36 Florian Klämpfl Resolution open => fixed
2006-10-08 18:36 Florian Klämpfl Assigned To => Florian Klämpfl
2007-01-01 20:41 Florian Klämpfl Status resolved => closed



Mantis 1.1.1[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker