| Summary: | Extremely slow fullscreen OpenGL on some Macs | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Vern Jensen <vern> |
| Component: | video | Assignee: | Sam Lantinga <slouken> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | critical | ||
| Priority: | P2 | ||
| Version: | HG 2.0 | ||
| Hardware: | x86 | ||
| OS: | Mac OS X 10.6 | ||
One tester who is experiencing the slow fullscreen issue writes: This is the information about my Mac (OS X 10.6.8) Hardware Overview: Model Name: iMac Model Identifier: iMac10,1 Processor Name: Intel Core 2 Duo Processor Speed: 3.06 GHz Number Of Processors: 1 Total Number Of Cores: 2 L2 Cache: 3 MB Memory: 4 GB Bus Speed: 1.07 GHz Boot ROM Version: IM101.00CC.B00 SMC Version (system): 1.52f9 Serial Number (system): W8949HAV5PC Hardware UUID: BE638F42-460D-5981-BD71-8FB7A151CEEF NVIDIA GeForce 9400: Chipset Model: NVIDIA GeForce 9400 Type: GPU Bus: PCI VRAM (Total): 256 MB Vendor: NVIDIA (0x10de) Device ID: 0x0869 Revision ID: 0x00b1 ROM Revision: 3454 Displays: iMac: Resolution: 1920 x 1080 Pixel Depth: 32-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Built-In: Yes Display Connector: Status: No Display Connected Another tester's setup (laptop this time): Model Name: MacBook Model Identifier: MacBook4,1 Processor Name: Intel Core 2 Duo Processor Speed: 2.4 GHz Number Of Processors: 1 Total Number Of Cores: 2 L2 Cache: 3 MB Memory: 2 GB Bus Speed: 800 MHz Boot ROM Version: MB41.00C1.B00 SMC Version (system): 1.31f1 Serial Number (system): W88109RB0P2 Hardware UUID: AFB2C7B7-4A25-5327-AD5E-A62BA78F6071 Sudden Motion Sensor: State: Enabled GRAPHICS/DISPLAYS Intel GMA X3100: Chipset Model: GMA X3100 Type: GPU Bus: Built-In VRAM (Total): 144 MB Vendor: Intel (0x8086) Device ID: 0x2a02 Revision ID: 0x0003 Displays: Color LCD: Resolution: 1280 x 800 Pixel Depth: 32-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Built-In: Yes Display Connector: Status: No Display Connected A third tester writes: This is the version of OpenGL that I have installed. Version: 1.6.7 Last Modified: 9/6/10 11:22 AM Kind: Universal 64-Bit (Intel): Yes Get Info String: OpenGL 1.6.7.38.0 Location: /System/Library/Frameworks/OpenGL.framework Private: No Oh I forgot to mention. This is with: SDL-1.3.0-5557 Just had a tester who experiences this problem test with an older version of SDL: SDL-1.3.0-5080. The same problem occurred (slow fullscreen with the gltest2 demo), verifying that this is a problem that has been around for a while... it's not something that was introduced in SDL recently (i.e. within the last few months.) Gordon fixed this in the latest Mercurial on July 16th. |
I'm nearly ready to submit my game to the Mac App Store, but have run into a really major problem during beta testing. Some beta testers (about half it seems) are experiencing extremely slow fullscreen, while windowed mode works just fine -- even at high resolutions. Initially, I tried reducing the resolution while fullscreen, figuring maybe a high resolution was the cause. But this and other attempts did not resolve the problem. It is sporadic, and some users have found that by toggling repeatedly between fullscreen and windowed mode, they can (around the 2nd or 3rd time) get fullscreen running up-to-speed. Just how slow is it going? About 18fps when fullscreen. It should be easily doing over 200fps, and does on my system, and does for them too, when in windowed mode, even with the window taking up most of the screen. It's not a resolution issue. I thought it was something I was doing until i tried modifying one of the SDL demos to go fullscreen. I simply modified the testgl2.c demo, adding the following right before "/* Main render loop */" { SDL_DisplayMode displayMode; // Set the resolution used when going fullscreen SDL_GetDesktopDisplayMode( SDL_GetWindowDisplay(state->windows[0]), &displayMode ); SDL_SetWindowDisplayMode( state->windows[0], &displayMode ); SDL_SetWindowFullscreen( state->windows[0], true ); } And while yes, I'm switching to fullscreen later, instead of using a flag at startup, the flag at startup method results in the same result in my tests. DO NOTE: This does not happen on my own system! (iMac Dual-core 2.0 GHz Intel 20") It happens on more than half of my tester's systems, and quite consistently. Their systems are even newer/faster than mine, so it's strange. The frame rates one of my testers gets with the above is: Windowed: 2208.47 frames per second Fullscreen: 29.65 frames per second Hopefully it's obvious that such an abysmally slow framerate is NOT due to resolution. But as I mentioned, you can change the resolution simply by setting displayMode.h = 800, displayMode.v = 600 or something similar between the SDL_GetDesktopDisplayMode and SDL_SetWindowDisplayMode calls above, and it won't help. It'll still be very slow fullscreen on my tester's systems. It's difficult for me to test "potential fixes" for this, as it runs great on my two Macs, so I'd have to send any potential fixes to my beta testers to see what they'd find. This is a big bug that's holding up the release of my game, so I'm hoping it can be fixed soon! I'm happy to help with whatever I can -- i.e. try potential fixes and forward them to my testers, and get back to you asap, if that'd help. I'll post some system profiles of two of the systems that run it slow fullscreen in follow-up messages.