Summary: | FBO with GL_RGBA16F texture format silent drawing corruption | ||
---|---|---|---|
Product: | Mesa | Reporter: | Johannes Jordan <freedesktop> |
Component: | Drivers/Gallium/r600 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED INVALID | QA Contact: | |
Severity: | major | ||
Priority: | medium | ||
Version: | 9.2 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Testcase header file
Testcase source file |
Description
Johannes Jordan
2013-09-23 02:25:38 UTC
Make sure you set --enable-texture-float when configuring mesa. Thank you for your reply. The configure option --enable-texture-float is set. See: https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/mesa (In reply to comment #1) > Make sure you set --enable-texture-float when configuring mesa. It should be since the driver is advertising OpenGL 3.0. I still have the problem and I can reproduce it. I am very willing to help in debugging the issue if you give me directions. Is there any chance this bug gets fixed? This works for me. Can you provide a test case? Created attachment 89120 [details]
Testcase header file
Created attachment 89121 [details]
Testcase source file
I am sorry my testcase uses Qt, but it would be much more time consuming for me to learn/rewrite everything without Qt. This is the qmake file: # cat fbotest.pro QT += core gui opengl greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = fbotest TEMPLATE = app SOURCES += fbotest.cpp HEADERS += fbotest.h Then run qmake, make, ./fbotest The testcase draws a rectangle and some text into a FBO, then blits it onto another FBO due to multisampling, finally draws the texture on screen. This is common practice. Thank you for taking your time to try the testcase! This does not work because glBlitFramebuffer fails, since it is trying to blit between FBOs with different pixel formats. This isn't allowed, check for instance the OpenGL 3.3 core specification, section 4.3.2 or the EXT_framebuffer_multisample specification. They unambiguously state that read and draw framebuffer must have the same pixel format for blits that involve multisample framebuffers. As far as I can see, this is not a problem with Mesa, but rather with your OpenGL compliance. Thank you for your time, I very much appreciate your detailed comment. I made my code compliant and now it works as expected. I had made a different mistake when I tried with the same format for the blit target. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.