Strange behaviour with point-sprite

I have a point sprite that is declared as follows:

    ofDisableArbTex();
    ofLoadImage(texture, "dot_new.png");
    
    int num = 200;
    float sizeRef = 50.0;
    float theSize = sizeRef;
    float step = (PI/2) / sizeRef;
    float counter = sizeRef;
    for(int i = 0; i < num; i++){
        points.push_back(glm::vec3(ofGetWidth()/2, ofGetHeight()/2, 1.0f));
        
        if (i > num - sizeRef && theSize > 1.0){
            theSize = sin(counter*step) * sizeRef;
            counter-=0.77;
        }
        sizes.push_back(glm::vec3(theSize));
    }
    
    // upload the data to the vbo
    int total = (int)points.size();
    vbo.setVertexData(&points[0], total, GL_STATIC_DRAW);
    vbo.setNormalData(&sizes[0], total, GL_STATIC_DRAW);
    
    ofEnableArbTex();

I have to add ofEnableArbTex(); to allow a video player to render in an FBO.
My problems appear when I add a simple rectangle as black with alpha, just to add a fade-in fade-out from black.

void Crossfade::draw(){
    ofPushMatrix();
    //ofFill();
    ofSetColor(myColor, alphaChange);
    ofDrawRectangle(0,0,w,h);
    ofSetColor(255);
    ofPopMatrix();
}

The interesting thing is that if I delete ofFill(), all works well but the crossfade, and when I put it back, it keeps everything on black and the error is:

FALLBACK (log once): Fallback to SW vertex for line stipple
FALLBACK (log once): Fallback to SW vertex processing, m_disable_code: 2000
FALLBACK (log once): Fallback to SW vertex processing in drawCore, m_disable_code: 2000

The points sprite is rendered as always:

    glDepthMask(GL_FALSE);
    ofEnableBlendMode(OF_BLENDMODE_ADD);
    ofEnablePointSprites();
    ofSetColor(100,150,225,200);
    shader.begin();
    texture.bind();
    vbo.draw(GL_POINTS, 0, (int)points.size());
    texture.unbind();
    shader.end();
    ofDisablePointSprites();

I don’t really understand the issue here.
Any help?

Ok,
I fix it adding in the draw()

ofEnableBlendMode(OF_BLENDMODE_ALPHA);
glDepthMask(GL_TRUE);
ofEnableDepthTest();

and

void Crossfade::draw(){
    ofDisableDepthTest();
    ofPushMatrix();
    ofFill();
    ofSetColor(myColor, alphaChange);
    ofDrawRectangle(0,0,w,h);
    ofPopMatrix();
}

That’s when luck fix things, I still don’t understand fully

Hey its hard to do both alpha blending and depth testing at the same time. I think there are a few discussions in the forum about this topic.