Bug 40531 - [RADEON:KMS:R600G] Frets On Fire visual corruption in menu
Summary: [RADEON:KMS:R600G] Frets On Fire visual corruption in menu
Status: RESOLVED NOTOURBUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-31 14:58 UTC by roughl
Modified: 2014-04-13 12:01 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Fretsonfire text corruption (402.25 KB, image/png)
2011-08-31 14:58 UTC, roughl
Details
game patch (439 bytes, patch)
2011-09-01 08:40 UTC, Vadim Girlin
Details | Splinter Review

Description roughl 2011-08-31 14:58:20 UTC
Created attachment 50785 [details]
Fretsonfire text corruption

When I start fretsonfire there is a visual glitch around the text in the main menu and all other text. (see attached screen-shot)

Version information:
% glxinfo|grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RV770
OpenGL version string: 2.1 Mesa 7.12-devel (git-82fff5f)
OpenGL shading language version string: 1.20

% uname -a
Linux tuxbox 3.0-ARCH #1 SMP PREEMPT Tue Aug 30 08:53:25 CEST 2011 x86_64 Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz GenuineIntel GNU/Linux

Other Information:
% egrep "(Tiling|Swap|flip)" /var/log/Xorg.0.log
[   360.814] (**) RADEON(0): Option "ColorTiling" "on"
[   360.814] (**) RADEON(0): Option "SwapbuffersWait" "off"
[   360.815] (II) RADEON(0): KMS Color Tiling: enabled
[   360.815] (II) RADEON(0): KMS Pageflipping: enabled
[   360.815] (II) RADEON(0): SwapBuffers wait for vsync: disabled
Comment 1 roughl 2011-09-01 08:24:35 UTC
I noticed some console output:
% fretsonfire
radeon: The kernel rejected CS, see dmesg for more information.

% dmesg|grep radeon
[    1.201137] [drm] radeon defaulting to kernel modesetting.
[    1.201140] [drm] radeon kernel modesetting enabled.
[    1.201193] radeon 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    1.201198] radeon 0000:01:00.0: setting latency timer to 64
[    1.201570] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[    1.201573] radeon 0000:01:00.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[    1.201670] [drm] radeon: 512M of VRAM memory ready
[    1.201672] [drm] radeon: 512M of GTT memory ready.
[    1.201728] radeon 0000:01:00.0: irq 44 for MSI/MSI-X
[    1.201733] radeon 0000:01:00.0: radeon: using MSI.
[    1.201757] [drm] radeon: irq initialized.
[    1.207978] radeon 0000:01:00.0: WB enabled
[    1.254326] [drm] radeon: ib pool ready.
[    1.326794] [drm] radeon: power management initialized
[    1.421474] fbcon: radeondrmfb (fb0) is primary device
[    1.848199] fb0: radeondrmfb frame buffer device
[    1.848205] [drm] Initialized radeon 2.10.0 20080528 for 0000:01:00.0 on minor 0
[ 3447.796703] [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation -12!
Comment 2 Vadim Girlin 2011-09-01 08:40:41 UTC
Created attachment 50816 [details] [review]
game patch

The game tries to create the texture of maximum size for the glyph cache. I think it's not a good idea. It doesn't even start on my evergreen due to this. You might want to try attached patch for the game (for the "src/Font.py" in the game folder), it should fix this issue.

Though, it seems the driver doesn't handle this situation correctly too. I'll look into it.
Comment 3 Vadim Girlin 2011-09-01 13:20:38 UTC
Probably the driver can't do anything other than report the "out of memory" error (error code -12 in your dmesg log). The game just shouldn't use such huge textures, it shouldn't use MAX_TEXTURE_SIZE as the size for texture (this result in 0.4 GB on r6xx/r7xx, 1.4 GB on evergreen, next step will be >5 GB with future GPUs). I think it makes sense to tell the game developers about this issue. With my patch it uses 1024x1024 texture (~5 MB) and runs fine without artifacts or error messages in the logs (though I haven't tested it much). I don't know exact requirements for this, the game developers should know what size is really required.
Comment 4 roughl 2011-09-08 15:56:22 UTC
the patch worked for me :)

But it's strange that fretsonfire work without problems with catalyst... maybe they set MAX_TEXTURE_SIZE to a different value.
Comment 5 Vadim Girlin 2011-09-09 08:19:27 UTC
(In reply to comment #4)
> the patch worked for me :)
> 
> But it's strange that fretsonfire work without problems with catalyst... maybe
> they set MAX_TEXTURE_SIZE to a different value.

I think the value of MAX_TEXTURE_SIZE is the same with catalyst, but probably it's using compression or some other tricks to reduce the size of the texture.
Comment 6 Marek Olšák 2014-04-13 12:01:51 UTC
(In reply to comment #3)
> Probably the driver can't do anything other than report the "out of memory"
> error (error code -12 in your dmesg log). The game just shouldn't use such
> huge textures, it shouldn't use MAX_TEXTURE_SIZE as the size for texture
> (this result in 0.4 GB on r6xx/r7xx, 1.4 GB on evergreen, next step will be
> >5 GB with future GPUs). I think it makes sense to tell the game developers
> about this issue. With my patch it uses 1024x1024 texture (~5 MB) and runs
> fine without artifacts or error messages in the logs (though I haven't
> tested it much). I don't know exact requirements for this, the game
> developers should know what size is really required.

This explains it. Closing.


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.