Details
Description
There are a couple issues with the use of interpolationMethod:
- The class defines Nearest as 0 (https://codebrowser.dev/qt6/qt3d/src/render/framegraph/qblitframebuffer.h.html#Qt3DRender::QBlitFramebuffer::Nearest), but the logic in https://codebrowser.dev/qt6/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp.html#1611 inverts this, so that Nearest produces GL_LINEAR and Linear produces GL_NEAREST.
- https://codebrowser.dev/qt6/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp.html#1614 unconditionally adds color/depth/stencil buffer bits. This is problematic when GL_LINEAR is used: "GL_INVALID_OPERATION is generated if mask contains any of the GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT and filter is not GL_NEAREST." (https://registry.khronos.org/OpenGL-Refpages/gl4/html/glBlitFramebuffer.xhtml)
Attachments
For Gerrit Dashboard: QTBUG-130470 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
610533,2 | SubmissionContext: correct blit interpolation mode | dev | qt/qt3d | Status: MERGED | +2 | 0 |
611418,2 | SubmissionContext: correct blit interpolation mode | 6.9 | qt/qt3d | Status: MERGED | +2 | 0 |
611568,2 | SubmissionContext: correct blit interpolation mode | 6.8 | qt/qt3d | Status: MERGED | +2 | 0 |