openframeworks / openframeworks/openFrameworks

Rendering in FBO fails with NVIDIA Base Profile on GL 4.6 (Quadro RTX6000)

Open
#8,415 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10.4k
Forks
2.6k
Avg merge
1d 21h
Merged PRs (30d)
9

Description

Environment:

  • OS: Windows
  • GPU: NVIDIA Quadro RTX6000
  • Driver Version: 572.83
  • openFrameworks Version: 0.12
  • GL Version: 4.6 (via settings.glVersionMajor = 4, settings.glVersionMinor = 6)
  • NVIDIA Control Panel Profile: Base Profile (issue present), 3D App – Video Editing (no issue)

Issue:

When using OpenGL 4.6 in an openFrameworks app on a system with an NVIDIA Quadro RTX6000, rendering to an ofFbo fails when the Base Profile is selected in the NVIDIA Control Panel.

Using the default GL version does not show the issue.

Observed behavior:

The first frame appears to render correctly.

Subsequent frames do not update (i.e., the FBO appears frozen or never refreshed).

This issue affects all standard draw calls to the FBO, including:

ofDrawLine
ofDrawRectRounded

Changing the FBO settings (e.g. internal format) has no effect.

Workaround:

Switching the NVIDIA Control Panel profile to 3D App – Video Editing resolves the issue completely. This was previously only recommended for performance but now appears necessary for functionality in this configuration.

Minimal Example:

void ofApp::setup() {
    fbo.allocate(ofGetWidth(), ofGetHeight(), GL_RGBA);
}

void ofApp::update() {
    fbo.begin();
    ofClear(0, 0, 0, 0);
    ofSetColor(255, 0, 0);
    ofDrawLine(100, 100, mouseX, 100);
    ofSetColor(0, 255, 0);
    ofDrawRectRounded(100, 150, 200, 100, 20);
    ofSetColor(255);
    ofDrawBitmapString("Move your mouse!", 100, 50);
    fbo.end();
}

void ofApp::draw() {
    ofBackground(20);
    fbo.draw(0, 0);
}
// main.cpp
int main() {
    ofGLWindowSettings settings;
    settings.setSize(1024, 768);
    settings.glVersionMajor = 4;
    settings.glVersionMinor = 6;
    settings.windowMode = OF_WINDOW;
    auto window = ofCreateWindow(settings);
    ofRunApp(window, make_shared<ofApp>());
    ofRunMainLoop();
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the minimal example in main.cpp and the ofApp setup, update, and draw methods, then reproduce it with OpenGL 4.6 and the NVIDIA Base Profile. Compare FBO updates against the 3D App – Video Editing profile and the default GL version, focusing on the ofFbo begin/end and draw path. Done means identifying a reproducible framework-side cause and verifying that the FBO refreshes across frames without changing the driver profile.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.