![]() |
|
AllegroGL and Intel chipsets. |
Richard Phipps
Member #1,632
November 2001
![]() |
Is there no way to test for an extension without causing a crash? |
Milan Mimica
Member #3,877
September 2003
![]() |
Sure there is. That's not the problem here. Take a look at this. This is what a OGL user has to do in order to call a function that is not a part of OGL-1.1 spec (name it glExtFnc): if (was_extension_promoted_to_core(ext_str)) { glExtFnc(); } else if (is_extension_supported(ext_str) { glExtFncARB(); } No matter how you put it, wrap it around, copy-paste it, calling glExtFnc() will always be ugly. Code that manages extensions in AGL is quite a mess already. But I'm looking into it. Maybe I'll hack up something.
-- |
Richard Phipps
Member #1,632
November 2001
![]() |
Milan: If that's the case, how come testing for the Multisampling causes the crash? |
Ashteth
Member #3,310
March 2003
![]() |
Quote: So, how do other libraries such as SDL or Torque2D solve this issue?
In Torque2D/TGB in the file "common/prefs/defaultPrefs.cs", the engine explicitly checks for intel graphics cards and disables OpenGL rendering if one is found. In this case, TGB forces the user to use Direct-X and emulates the GL function calls. So, there probably is a problem with the intel drivers as at least one other engine hacks around Intel too
|
Milan Mimica
Member #3,877
September 2003
![]() |
Richard: Where does that happen? AFAIK, it crashes at glSampleCoverageARB() call, in src/win.c, line 1624. Bob: What do you mean by Quote: 1- Disable AGL's aliasing of promoted extensions. Thus, glVertexAttrib4f() will not be the same as glVertexAttrib4fARB(). Caveat Emptor. Where does this aliasing happen? I think some kind of aliasing of extensions would be a solution here. glVertexAttrib4fARB would point to glVertexAttrib4f if the extension was promoted.
-- |
Bob
Free Market Evangelist
September 2000
![]() |
Quote: Where does this aliasing happen? Actually, it doesn't. Sorry for the mixup. Maybe it should? Not clear how that would work, though. -- |
Richard Phipps
Member #1,632
November 2001
![]() |
Milan: Yes. But what I meant was is there any way to test if that feature is actually there? I thought the glSampleCoverageARB() call was related to Multisampling? |
Milan Mimica
Member #3,877
September 2003
![]() |
Well... there is, but it's ugly. Intel should really make both ARB and non-ARB version work. All other drivers do that, probably. I just figured how does extension mechanism in AGL work and this can't be fixed without a rewrite. But there are many workarounds that can be applied. I'm proposing the following patch. It should fix the concrete situation and I would appreciate if someone tries it.
-- |
Richard Phipps
Member #1,632
November 2001
![]() |
Ok, can anyone with an Integrated Intel chipset test the patch? |
Epsi
Member #5,731
April 2005
![]() |
Send me a compiled version of an OL program, one version with patch and one without, and I can test. ___________________________________ piccolo: "soon all new 2d alegro games will be better. after i finsh my MMRPG. my game will serve as a code reference. so you can understand and grab code from." |
kikabo
Member #3,679
July 2003
![]() |
I've sent an update to a friend to test, will let you know when I do Ed. SUCCESS, all looking good here. |
Milan Mimica
Member #3,877
September 2003
![]() |
The fix has been committed to SVN.
-- |
Richard Phipps
Member #1,632
November 2001
![]() |
Can you explain how it works? I don't see what's going on there.. |
Neil Walker
Member #210
April 2000
![]() |
Doesn't windows still come with 1.3 by default, but 1.4 is available? maybe it has some workarounds in it? Neil. wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie |
Milan Mimica
Member #3,877
September 2003
![]() |
Richard: I can only repeat myself. Read what I've been talking on this thread and what has been said on the other thread.
-- |
|
|