Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
4.8.0, 4.8.1, 4.8.2, 4.8.3, 4.8.4, 5.0.0 Beta 1
-
Windows
-
c16471dd7aa6ce9b9768e70de66763f73584d880, 8900bc778f326e6b22ecfceb0b0b64394f3510fb
Description
This issue effects only Windows machines with NVIDIA GPU's. Artifacts appear underneath text when rendering with the OpenGL2 paint engine. These artifacts occur only when rendering to a buffer with alpha enabled (i.e. if rendering to a QGLWidget they only appear when I explicitly call QGLWidget::setAlpha(true)). They always appear when rendering to a QGLFramebufferObject.
The attached screenshot shows the artifacts pretty clearly. It's probably worth noting that when the pixel size goes above 64 the artifacts go away. Based on the Qt source I know that this is the size at which Qt will stop caching glyph textures so I'm guessing the issue is related to caching.
I attached some simple source that demonstrates the issue. You can increase/decrease the size of the font with mouse's wheel. The issue can be reproduced on Windows only when using NVIDIA's GPU. This is a regression issue because this cannot be reproduced with Qt 4.7.4 but this can be reproduced with Qt 4.8.0 and newer.
The commit that broke the drawing was about optimizing and its SHA1 is 410ddbf93f16a948ed28bbfe177433b3d138bd8c
I have tested this with following kind of computers:
Windows 7 NVIDIA GeForce GT 330 - repro
Windows 7 AMD RADEON HD 6670 - cannot repro
Linux Ubuntu 10.04 NVIDIA GeForce GT 330 - cannot repro