Ok, we are running into problems with AllegroGL and Intel chipsets. I know people here probably don't have these chipsets but they are becoming increasingly popular (According to Epic's Mark Rein, 80% of laptops and 55% of desktops (note: he failed to cite a source for these figures) feature integrated graphics.
Still in our own tests, about half of laptops available to buy (from Staples) crashed with AllegroGL and OpenLayer.
It is not a question of buying a better card, if people want AllegroGL to be used (and especially for shareware games) then it has to be made to work on these cards. We are going to try to look into the problem ourselves, (we already ran into issues with the 915 chipset series). But I would like to see if AllegroGL developers can work on these problems themselves? Otherwise we'll end up using a different library in the future as AllegroGL will soon become outdated.
Sorry, if this sounds rather strong, but it's frustrating! 
Can the devs help?
Well uh, I wont have time to personally do any development myself, but I will offer some testing.
Keep in mind this is actually a huge favour I'm doing you guys since bob's allegrohack literally froze(required hard reboot) my laptop and I'm fairly certain that this is going to result in some permanent data loss (I hope it's not my code
)
I have the following:
Geforce 6600go laptop
Intel integrated Dell from 2002 or so
New Gateway Laptop with integrated Intel.
Ok, we are running into problems with AllegroGL and Intel chipsets.
I had some problems with AllegroGL running on Intel chips, too. IIRC I couldn't get AllegroGL to start fullscreen, 32-bit color with 8-bit alpha channel, 24-bit Z-buffer and 8-bit stencil buffer together, although NeHe framework seems to be able to do it just fine.
Does this happen with AllegroGL 0.4.0? I thought we fixed that particular issue.
[OFFTOPIC]
Please excuse my lack of knowledge, but since AllegroGL seems to be a little bit outdated, and since most people here use it only because OL needs it, it wouldn't be possible to make OL AllegroGL-free?
I know my laptop's Intel i810 chipset works with AllegroGL/OpenLayer in Linux, at least after putting an XInitThreads() in my program. Haven't tested it in Windows, though.
I haven't got the details yet. I don't have access to the machines myself, but I know one is a Intel 915 (which I thought we'd fixed) and the other one I know of is a strange chipset called ChromeDV.
Hopefully we can post more here soon once we get more details.
AllegroGL seems to be a little bit outdated
How so?
it wouldn't be possible to make OL AllegroGL-free?
Sure, if you don't mind reinventing the wheel. to come up with essentially the same solution.
Sure, if you don't mind reinventing the wheel. to come up with essentially the same solution.
Well Bob, if AllegroGL crashes on more than 50% of shop laptops than there is a problem. To me that seems like it's not being kept upto date to work on these new chipsets and the Delta Chrome Video one which also crashes.
I second the crashing problem.
Does OL use the newest AGL version ?
OL can use any fairly new version (which have the same API), but only the latest version of AllegroGL works with the latest version of Allegro.
if AllegroGL crashes on more than 50% of shop laptops than there is a problem.
Indeed. Do you know why and where it crashes? My laptop doesn't have Intel IGP, so I can't test things on my end. Remember: I (and the handful of other AGL developers) don't have all possible hardware combinations to debug on.
We are looking into it, hopefully we can trace the problem and post here.
A friend of mine tried my game and got the crash on a Dell Dimension 3100 with the Intel 915 chipset. It's the latest (0.4.0 svn) AllegroGL + Allegro.
He sent me a trace and I think I remember it was falling over setting the graphics mode - I can find out for sure tomorrow.
It was on a work machine of his so I can't borrow it easily to debug AllegroGL yet but I've identified 30 or so machines where I work with the same graphics card so I might be able to get one if I can match one of those machines to a name that owes me a favour 
If I get one would anyone care for an online problem solving session ?
On a side note, I second the importance. These kind of machines are the ones I would imagine most homebrew game writers would want their games working on. The souped up uber games PCs are likely to be owned by people that only play FPS's anyway.
Can someone post some test(compiled windows exe) that I can just run and will print all the debug information required?
I don't have access to a compiler on either machine so if someone can do this I can post log dumps for two different IGP chipsets?
I think from where my game crashed that it's likely that even the AllegroGL examples will fall over in the same place, just compile AllegroGL DEBUGMODE=1.
ed.
It might be worth putting some extra TRACEs in allegrogl/src/win.c in allegro_gl_win_init() ? ... or somewhere in there
Sorry, we are having big problems here. 
Can anyone else see if they can test the problem on Intel chipsets?
It would be a great help.
On a side note, I second the importance. These kind of machines are the ones I would imagine most homebrew game writers would want their games working on. The souped up uber games PCs are likely to be owned by people that only play FPS's anyway.
Well actually software rendering would be useless for my game (1 FPS if lucky), so I would not want at all people with those cards to play the game. But what I hate more is the fact that it's just crashing, it's just so unprofessional...
Basically I would like it to not crash so that I can say "buy a real PC u n00b"
It looks like it supports OpenGL 1.4 and has a reasonable spec for most homebrew games, but yes, I hate crashes
ed. yay I got glyphkeeper working, duh!
What operating system are you using?
Can you provide a stack trace of the crash?
I can't at the moment, this was the log that was sent to me
| 1 | allegro_init() |
| 2 | al-main INFO: Allegro initialised (instance 1) |
| 3 | install_keyboard() |
| 4 | install_timer() |
| 5 | install_sound() |
| 6 | install_joystick() |
| 7 | install_mouse() |
| 8 | zTiming::Init() |
| 9 | set_display_switch_mode() |
| 10 | set_display_switch_mode() |
| 11 | zScreen::Init() |
| 12 | AllegroGL version 0.4.0 RC4 |
| 13 | zScreen::zScreen 1280 x 1024 @ 32 Fullscreen |
| 14 | al-gfx INFO: Called set_gfx_mode(1330072644, 1280, 1024, 0, 0). |
| 15 | al-gfx INFO: Firt call, remembering console state. |
Ok, I'm trying to build the debug version of AllegroGL so we can try to trace the problems and after it has made the text.c example I get this:
gcc examp/test.c -o examp/test.exe -mwindows -W -Wall -Wno-unused -DDEBUGMODE -g
-Iinclude -Iinclude/allegrogl -Iinclude/allegrogl/GLext lib/mingw32/libagld.a -
lalld -luser32 -lgdi32 -lglu32 -lopengl32
c:\dev-cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f
ind -lalld
collect2: ld returned 1 exit status
make: *** [examp/test.exe] Error 1
Any ideas?
You'll need to install the debug version of allegro as well. make DEBUGMODE=1 in windows iirc.
liballd is the debug version of allegro's lib file.
ah.. Well I carried on with the install and it writes the (92k) allegro.log file showing all the AllegroGL details out just fine. Is this ok to use?
It was only the tests that failed, so yes, its fine.
great. thanks!
EDIT:
Here is the AllegroGL error log when trying to open a screen with a via/s3g deltachrome chipset:
al-main INFO: Allegro initialised (instance 1)
al-gfx INFO: Called set_gfx_mode(1330072663, 640, 480, 0, 0).
al-gfx INFO: Firt call, remembering console state.
Note * win_init(): Requested color depth: 16 Desktop color depth: 32
Note * win_init(): Setting up window.
Note * win_init(): Driver selected fullscreen: No
Note * win_init(): Setting pixel format.
Note * select_pixel_format(): Trying to set up temporary RC
Note * select_pixel_format(): ChoosePixelFormat()
Note * select_pixel_format(): SetPixelFormat()
Note * select_pixel_format(): CreateContext()
Note * select_pixel_format(): MakeCurrent()
Note * select_pixel_format(): GetExtensionsStringARB()
Note * select_pixel_format(): GetProcAddress()
Note * get_num_pixel_formats(): Attempting to use WGL_pf.
Note * get_num_pixel_formats(): WGL_ARB/EXT_pixel_format use failed!
The pixel format is invalid.
(0xc00707d0)
Note * get_num_pixel_formats(): Using DescribePixelFormat.
Warning * select_pixel_format(): WGL_ARB_pf call failed - reverted to plain old WGL.
Note * select_pixel_format(): 84 formats.
Note * select_pixel_format(): Testing pixel formats:
Format 1:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 2:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 3:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 4:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 5:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 6:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 7:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 8:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 9:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 10:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 11:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 12:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 13:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 14:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 15:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 16:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 17:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 18:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 19:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 20:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 21:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 22:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 23:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 24:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 25:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 26:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 27:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 28:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 29:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 30:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 31:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 32:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 33:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 34:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 35:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 36:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 37:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 38:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 39:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 40:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 41:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 42:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 43:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 44:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 45:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 46:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 47:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 48:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 49:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 50:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 51:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 52:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 53:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 54:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 55:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 56:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 57:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 58:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 59:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 60:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 61:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 62:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 63:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 64:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 65:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 66:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 67:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 68:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 69:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 70:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 71:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 72:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 73:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 74:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 75:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 76:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 77:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 78:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 79:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 80:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 81:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 82:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 83:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
Format 84:
* Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
(0x00000006)
** Warning ** select_pixel_format(): Unable to rely onunextended WGL to descrive this pixelformat.
ERROR * select_pixel_format(): Didn't find any available pixel formats!
al-gfx ERROR: Failed setting graphic driver 1330072663.
So, any ideas..?
Use the SVN version.
http://allegrogl.sf.net/allegrogl-svn-20061002.zip
The is a known problem with some Intel chipsets, at least I know about it. We had a discussion but not a real fix.
http://sourceforge.net/mailarchive/forum.php?thread_id=29952110&forum_id=3293
http://www.allegro.cc/forums/thread/586780
I'll look into that, seems that log is from the old AllegroGL version.
I downloaded the SVN version yesterday and we found that it crashed on Intel 915 and 940 chipsets as before. Disabling the ARB_multitexturing extension worked though. (I don't use multitexturing in the game)
I thought the latest SVN was supposed to fix that Intel bug?
Format 1:
Warning * describe_pixel_format_old(): DescribePixelFormat() failed!
The handle is invalid.
This looks like a real AGL bug.
Disabling the ARB_multitexturing extension worked though.
Don't you mean ARB_multisampling? They're not quite the same...
Sorry, multisampling. It's the same issue as before:
if (allegro_gl_extensions_GL.ARB_multisample) {
glSampleCoverageARB(1.0, GL_FALSE);
}
Apparently, the variable allegro_gl_extensions_GL suggests that the Intel 915series chipset is capable of handling this Open GL extension, but it is not. I suspect that the extensions are being parsed improperly, but I ran out of time to verify this today.
I tried the SVN version (yesterday) and the crashing was still there. So I disabled the relevant multisample parts.
We've also just confirmed that the same issue affects the via/s3g deltachrome chipset. Commenting out multisampling makes it work, with it, it crashes and burns when trying to open a screen.
I could offer some testing: I have Intel ***910GL in the office, and an Intel 82852/82855 GM/GME in my laptop. On both even the OpenLayer demo doesn't work.
Well, I thought I might build and debug the demo - but I see that there's no MSVC project file, and quite a few prerequisites. As of now, I don't have SVN or CVS on my PCs (mainly because I'm using Perforce for my own work), so I can only use official releases or snapshots or something.
Does any of you have all sources necessary to build OpenLayer 2.0 (or later) and could pack this into a file for me to download? Would make life much easier for me, because I would really like to use OpenLayer in the first place, and help by debugging it, when I can. I guess I would also be able to create a MSVC project file, if that doesn't exist yet.
Well, I've pointed out the problem with the SVN version with reagrd to the intel chipsets. I had to hack it to get it to work as I don't know enough about the library or OpenGL. It's upto the AllegroGL devs to try to make a proper fix (and not a patch) now in my mind.
We've not seen any movement from them yet though (hint!)..
EDIT: Tobing, for these problems you only need to use AllegroGL and the examples. (You don't need OpenLayer to see the crash).
I see... even managed to retrieve some projects from SVN and CVS today. Maybe I'll debug into some of the AllegroGL examples to learn some details.
A complete source package would be nice nevertheless: I do intend to make use of OpenLayer once it works on my Laptop, and it would be easier if someone could provide a package containing all the sources needed to build it. Of course I can collect all the packages in all the correct version myself, but it takes time to do so, and at least the makers of OpenLayer should have all sources at hand, shouldn't they? It would be nice, really...
Edit: I'm trying to build from SVN (using MSVC 7.1 on WinXP), but that does not work: It's missing the generated file 'gl_ext_alias.h' which is created by mkalias.sh, so I cannot do this.
Maybe someone could attach this missing file here? Also glx_ext_alias.h and wgl_ext_alias.h, they're also missing. Or someone might confirm that the files contained in the 0.4.0rc4 distribution can be used?
Edit: I've built the SVN version successfully, using the generated headers from 0.4.0rc4, and not compiling x.c and djgpp.c - test.c has run fine. Debug. More to come...
Thanks tobing!
Now I've run all the AllegroGL examples, and had two of them crash, all others run well. Both crashes seems to be totally unrelated and somewhat obscure, and also not related to the Intel graphics chip problem. The bad tests are dumbtest and fonttest...
Well, now I'm on my way to build OpenLayer. For this I need to build GlyphKeeper, which took me some moments to get the project configuration right - I couldn't built for target GLYPH_TARGET_ALLEGGL because it didn't compile, only for target GLYPH_TARGET_ALLEGRO. Hopefully that's OK for use with OpenLayer?
you can build the latest SVN OL with Freetype and get rid of Glyphkeeper already.
Thanks, goods hint. So I built the last Freetype library (2.2.1) and tried to use it with alfont 1.9.2 and GlyphKeeper 0.29 as an exercise: alfont compiles and links fine, but GlyphKeeper does not, because at some place they try to include an internal header file which seems to have changed. So GlyphKeeper remains on Freetype 2.1.10 this way. Now I'll try the latest SVN of OpenLayer.
It's upto the AllegroGL devs to try to make a proper fix (and not a patch)
What is the distinction between 'a proper fix' and 'a patch' in your mind?
Usually when I see the term patch used in relation to open source products, it refers to a diff file that one can apply with the patch utility.
OK, I'll give it up for today. I just can't get OL to compile, not the 2.0 distribution, nor the latest SVN version. Oh, I'm using MSVC 7.1 and I'll not use this cbuild that's supplied with OL: I want to use a project file to be able to use all my tools within the IDE. It would be nice if somebody could give me any further information on how to build OL, compiler flags etc. There are many compilation errors, which might be due to a missing #define or some compiler options which have to be set, but so far I haven't found any clue. Thanks in advance!
I could never get OpenLayer to compile either.
Evert: To me, a fix solves the problem, a patch is more of a hack to get it to work.
When the Intel chipset problem came up before the first solution was to detect that chipset and not try Multisampling in that case. But now I've seen this problem occur with multiple intel chipset types and so I think a better way is needed than a lot of specialised cases.
I've been reported about a compilation problem with the latest SVN version when compiling with GCC, maybe one of the files in the SVN repository hasn't been updated or something. I'll check it out in the evening...
Most likely if you're compiling OL for MSVC, I'd blame Microsoft's non-standard compiler for the issues then...
To me, a fix solves the problem, a patch is more of a hack to get it to work.
Ok, just understand that when someone says `there's a patch that fixes the issue,' they are likely to mean it in the sense I described.
ok.
Thanks for checking. I hope I can continue looking into this tomorrow!
Fladimir, I have some years of experience using MSVC and writing portable code, including various Unixes and linux. Usually, the MSVC compiler is quite close to the standard, whereas gcc does compile a lot of things which are not ANSI C++. I can give you examples of this tomorrow (hopefully).
Just to ask this: I have access to SVN now, to get files from the depot. Would it also be possible to submit changes? I assume not, so how would that be done?
To me, a fix solves the problem, a patch is more of a hack to get it to work.
Aren't you thinking of a "hack" or a "band-aid"?
However, since the bug in question is inside the Intel OpenGL drivers, there is no proper fix AllegroGL can do other than to try not to hit it. This will require keying off the GPU name (which isn't very reliable).
So, how do other libraries such as SDL or Torque2D solve this issue?
They just don't let you use multisampling out of the box
What exactly is multisampling, and should AllegroGL do something similar?
I thought the latest SVN was supposed to fix that Intel bug?
It fixes some of the bugs related to Intel chipsets. More precisely, it fixes bugs in select_pixel_format() reported in logfile.
The bug with multisampling is the only one left unfixed AFAIK. I'm not sure what is the proper way to fix it. I'm not even sure it is a Intel bug. The thing is that Intel915 does support multisampling. They are OGL-1.4 compliant. glSampleCoverageARB() does not have to work and "ARB_multisample" does not have to be listed in GL_EXTENSIONS if the extension was promoted to core. Everything is legal on Intel side. glSampleCoverage() works!
However, AGL assumes that the ARB version will be available even if extensions was promoted to core. That is true in most cases, but not true enough.
The best fix I see is to modify AGL code that manages extensions to use the non-ARB version if the extension was promoted to core. That's not a trivial thing to do.
There are a couple of options available:
1- Disable AGL's aliasing of promoted extensions. Thus, glVertexAttrib4f() will not be the same as glVertexAttrib4fARB(). Caveat Emptor.
2- Do that only for Intel and ARB_multisampling.
3- Figure out why we added the code to set the multisample mode in AGL, and apply the workaround only on the problematic chip (this still doesn't solve the issue for Intel chipsets if apps call glSampleCoverageARB themselves).
4- Add some mechanism to tell if an extension is available because of promotion or because it was natively reported. This shouldn't be too hard: the code to do the promotion is in glext.c around line 557.
Is there no way to test for an extension without causing a crash?
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.
Milan: If that's the case, how come testing for the Multisampling causes the crash?
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
Richard: Where does that happen? AFAIK, it crashes at glSampleCoverageARB() call, in src/win.c, line 1624.
Bob: What do you mean by
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.
Where does this aliasing happen?
Actually, it doesn't. Sorry for the mixup. Maybe it should? Not clear how that would work, though.
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?
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.
The shallowness of the fix can be justified by the fact that we don't know wether other APIes are affected and wether it is a problem with a specific driver version.
| 1 | Index: src/win.c |
| 2 | =================================================================== |
| 3 | --- src/win.c (revision 1137) |
| 4 | +++ src/win.c (working copy) |
| 5 | @@ -1621,7 +1621,12 @@ |
| 6 | glLoadIdentity(); |
| 7 | |
| 8 | if (allegro_gl_extensions_GL.ARB_multisample) { |
| 9 | - glSampleCoverageARB(1.0, GL_FALSE); |
| 10 | + /* Workaround some "special" drivers that do not export the extension |
| 11 | + * once it was promoted to core.*/ |
| 12 | + if (allegro_gl_opengl_version() >= 1.3) |
| 13 | + glSampleCoverage(1.0, GL_FALSE); |
| 14 | + else |
| 15 | + glSampleCoverageARB(1.0, GL_FALSE); |
| 16 | } |
| 17 | |
| 18 | /* Set up some variables that some GL drivers omit */ |
Ok, can anyone with an Integrated Intel chipset test the patch?
Send me a compiled version of an OL program, one version with patch and one without, and I can test.
I've sent an update to a friend to test, will let you know when I do
Ed. SUCCESS, all looking good here.
The fix has been committed to SVN.
Can you explain how it works? I don't see what's going on there..
Doesn't windows still come with 1.3 by default, but 1.4 is available? maybe it has some workarounds in it?
Richard: I can only repeat myself. Read what I've been talking on this thread and what has been said on the other thread.
There is this multisampling extension that is used to do antialiasing. It provides a function named SampleCoverage. To get a pointer to a function that is provided by the extension, on Windows, you need to use wglGetProcAddress(). Lets name this function pointer glSampleCoverageARB.
The OGL specification says that extensions can be promoted to core. Then you can call these functions just like any other OGL funcitions. They loose the ARB suffix and glSampleCoverageARB becomes glSampleCoverage.
The specification also says that the function should still be accessbile in the old wglGetProcAdress() way, for compatibility reasons. Intel does not that for SampleCoverage. Doesn't really have to, but should.
Multisampling extension got promoted to core in OGL-1.3.
allegro_gl_extensions_GL.ARB_multisample is set to true if either the extension is available (can get functions using GetProcAddress), or the extension was promoted.
You figure out the rest.