Created attachment 43358 [details] Celestia screenshot mesa-7.10 r200 mesa-7.10 font distortion With r200 and mesa-7.10, fonts appear distorted in some OpenGL applications, like Celestia, extreme-tuxracer, or oolite. In other applications they look alright, like Stellarium, or Supertuxracer. The same distortions appear with mesa-git (as of below commit). With mesa-7.9.1, all fonts look alright. System environment: -- system architecture: i686 -- Linux distribution: Gentoo -- GPU: R200 514D -- Model: ATI Radeon 9100 QM (AGP) -- Display connector: VGA -- xf86-video-ati: 6.14.0 -- xserver: 1.9.2 -- mesa: 07eb660fc92b63213b542d47671b0d944286b77a -- drm: 550fe2ca3b29ad2191eab4fdfbed9ed21e25492d -- kernel: 2.6.38-rc3
Created attachment 43359 [details] Celestia screenshot mesa-7.9.1
Can you bisect?
(In reply to comment #2) > Can you bisect? Sure, I bisected to 5d1387b2da3626326410804026f8b92f1a121fdc Ian Romanick, "ARB_texture_rg: Add R8, R16, RG88, and RG1616 internal formats".
I tried to partially revert the commit. It looks to me like I can add R8, R16, and RG1616 without a problem. But when I add RG88, the distortions appear.
Created attachment 43579 [details] screenshot extreme-tuxracer mesa-git This screenshot from extreme-tuxracer might give a better impression of the problem. Every letter appears to get duplicated.
(In reply to comment #3) > (In reply to comment #2) > > Can you bisect? > > Sure, I bisected to 5d1387b2da3626326410804026f8b92f1a121fdc > Ian Romanick, "ARB_texture_rg: Add R8, R16, RG88, and RG1616 internal > formats". That's pretty weird. I don't see how that change could impact r200. The only thing that seems to have a chance is if something weird happens in the GL_LUMINANCE8_ALPHA8 case. What happens if you apply this mini-patch? This isn't a fix, but it may help illuminate what's going wrong. diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index cf85a5b..75dc107 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -464,7 +464,7 @@ gl_format radeonChooseTextureFormat(struct gl_context * ctx, case GL_LUMINANCE12_ALPHA12: case GL_LUMINANCE16_ALPHA16: case GL_COMPRESSED_LUMINANCE_ALPHA: - return _dri_texformat_al88; + return radeonChoose8888TexFormat(rmesa, format, type, fbo); case GL_INTENSITY: case GL_INTENSITY4:
(In reply to comment #6) > What happens if you apply this mini-patch? This > isn't a fix, but it may help illuminate what's going wrong. I had a look at Celestia and extreme-tuxracer, but I don't see any difference.
This is a mini-patch against mesa commit 12f25eb6d5521ad2dc61eab08331c1ea8d3c67f7 that fixes the distortions at my place. diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index 7dd4a1f..47851c4 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -2185,7 +2185,8 @@ _mesa_texstore_unorm88(TEXSTORE_PARAMS) if (!ctx->_ImageTransferState && !srcPacking->SwapBytes && (dstFormat == MESA_FORMAT_AL88 || dstFormat == MESA_FORMAT_RG88) && - baseInternalFormat == srcFormat && + baseInternalFormat == GL_LUMINANCE_ALPHA && + srcFormat == GL_LUMINANCE_ALPHA && srcType == GL_UNSIGNED_BYTE && littleEndian) { /* simple memcpy path */
FWIW, I was able to reproduce the extreme-tuxracer distortion with this i686 Fedora Live CD: https://fedoraproject.org/wiki/Test_Day:2011-02-23_Radeon#Live_image Additionally I noticed weird horizontal red lines in the snow, which I've never seen before. Apparently they're using a Mesa 7.10 snapshot from January 7.
Please reffer also to: https://bugzilla.redhat.com/show_bug.cgi?id=679579 https://bugzilla.redhat.com/show_bug.cgi?id=678803 I have now mesa 7.11 and gnome-shell is completely unusable due to text distrotion, incorrect shadows drawing and some more artifacts. It may or may not be related. Text corruption looks very similar.
Created attachment 45460 [details] [review] PATCH: texstore: stricter check for memcpy path for unorm88 and unorm1616 Hi, The attached patch fixes the font corruption / gnome shell misrendering with r2xx cards. It does this by restoring the original texstore behavior from before commit 5d1387b2da3626326410804026f8b92f1a121fdc for al88 / al1616 textures. Many thanks to Nicolas Kaiser who did all the hard work of tracking this down! Regards, Hans
p.s. I'm also doing a mesa scratch build for F-15 for those of you using that, see: https://bugzilla.redhat.com/show_bug.cgi?id=678803
problem is the texture being uploaded is GL_LUMINANCE_ALPHA with an srcFormat/internalFormat of GL_ALPHA, I think this is legal, but the new upload code tries to memcpy in this case which is incorrect. trying to write a piglit test to show this.
okay pushed a fix to mesa master + a piglit test to catch on r200.
(In reply to comment #14) > fix to mesa master e338a1b0cea94f8c57968b01eebd795c6c8ce74e ("texstore: fix regression stricter check for memcpy path for unorm88 and unorm1616"): http://cgit.freedesktop.org/mesa/mesa/commit/?id=e338a1b0cea94f8c57968b01eebd795c6c8ce74e > piglit test to catch on r200 b70f3a0d1cda78e9ec62be6a93f05df28f625dfc ("texture-al: simple texture text for ALPHA/LUMINANCE_ALPHA"): http://cgit.freedesktop.org/piglit/commit/?id=b70f3a0d1cda78e9ec62be6a93f05df28f625dfc
Thanks a lot! The commit fixes this specific problem at my place.
*** Bug 36289 has been marked as a duplicate of this bug. ***
Just had a quick look, maybe worth cherry-picking on top of 7.10? The c-p seems trivial (no conflict). Thanks for considering.
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.