https://bugs.freedesktop.org/show_bug.cgi?id=69689
Priority: medium Bug ID: 69689 Assignee: dri-devel@lists.freedesktop.org Summary: FBO with GL_RGBA16F texture format silent drawing corruption Severity: major Classification: Unclassified OS: Linux (All) Reporter: freedesktop@lanrules.de Hardware: x86-64 (AMD64) Status: NEW Version: 9.2 Component: Drivers/Gallium/r600 Product: Mesa
I create an FBO with internal texture format GL_RGBA16F. I also tried GL_RGBA32F. Both work fine with my nVidia GPU.
With my ATI card it fails.
- No error is reported when creating and binding the FBO. - Blitting the FBO on screen results in random patterns (first run), then black output
System information: Caicos [Radeon HD 6450/7450/8450] Running on a Gallium 0.4 on AMD CAICOS from X.Org OpenGL version 3.0 Mesa 9.2.0 is supported Linux 3.10.10-1-ARCH kernel
GL feature data (useful? idk): GL_ARB_texture_float: OK GL_ARB_texture_buffer_object: OK [MISSING] GL_ARB_texture_buffer_object_rgb32: MISSING
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #1 from Alex Deucher agd5f@yahoo.com --- Make sure you set --enable-texture-float when configuring mesa.
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #2 from Johannes Jordan freedesktop@lanrules.de --- 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=p...
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #3 from Ian Romanick idr@freedesktop.org --- (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.
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #4 from Johannes Jordan freedesktop@lanrules.de --- 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.
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #5 from Johannes Jordan freedesktop@lanrules.de --- Is there any chance this bug gets fixed?
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #6 from Grigori Goronzy greg@chown.ath.cx --- This works for me. Can you provide a test case?
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #7 from Johannes Jordan freedesktop@lanrules.de --- Created attachment 89120 --> https://bugs.freedesktop.org/attachment.cgi?id=89120&action=edit Testcase header file
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #8 from Johannes Jordan freedesktop@lanrules.de --- Created attachment 89121 --> https://bugs.freedesktop.org/attachment.cgi?id=89121&action=edit Testcase source file
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #9 from Johannes Jordan freedesktop@lanrules.de --- 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!
https://bugs.freedesktop.org/show_bug.cgi?id=69689
--- Comment #10 from Grigori Goronzy greg@chown.ath.cx --- 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.
https://bugs.freedesktop.org/show_bug.cgi?id=69689
Johannes Jordan freedesktop@lanrules.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID
--- Comment #11 from Johannes Jordan freedesktop@lanrules.de --- 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.
dri-devel@lists.freedesktop.org