Particle systems (at least) produce little flickering rectangles on some OS X machines

Particle systems (at least) produce little flickering rectangles on some OS X machines
0.0 0


I’m seeing small flickering rectangles (I’m guessing about 16 pixels wide and 4 pixels high) when I run very simple cocos2dx test programs on two different Mac machines. The window creation, etc. in C++ is pretty much identical to the HelloCpp example, and the actual scene (currently created in Lua) is simply:

local sceneGame = CCScene:create()
local s = CCDirector:sharedDirector():getWinSize()
local emitter = CCParticleGalaxy:create()
local enode = tolua.cast(emitter, “CCNode”)
enode:setPosition(ccp(s.width / 2, s.height / 2))

I’ve pared this down from more complicated examples with extra background layers, etc., but those don’t seem to make any difference. So the entire scene here is just a stock “Galaxy” particle system, and I’m getting strange flickering little rectangles randomly showing up in the scene. (For example, see the attached screenshot: note the black rectangle slightly to the lower right of the center.)

I’m guessing this is actually either a hardware or driver bug for the NVidia Geforce 320M (which both of the Macs this problem shows up on have), because:
* While the cocos2dx program is running, I also sometimes get a couple of similarly-sized rectangular glitches in parts of my desktop not actually occupied by the cocos2dx program, which is obviously a bad sign.
* I don’t see this behavior on my Mac Pro, which has an ATI graphics card instead.
* The shape and size of the rectangles (in actual screen pixels) seems independent of everything I’ve tried varying, including the “frame zoom factor” of the glView.

Has anyone seen this behavior before? Does anyone know how to work around it or prevent it from happening?

Screen Shot 2012-12-31 at 1.05.38 AM.jpg (28.6 KB)


Just in case anyone was wondering, changing the OpenGL setup to the one used in TestCpp (which uses a depth buffer) does not make the problem go away. Nor does disabling or enabling depth testing, nor adjusting the vertexZ of the particle system.