https://bugs.freedesktop.org/show_bug.cgi?id=29350
Summary: No stencil buffer support for frogatto with Radeon HD 3200 KMS Product: Mesa Version: git Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/R600 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: shadowm@wesnoth.org
The game Frogatto requires stencil buffer support in order to display an iris transition which is used when starting/switching levels during gameplay. When it doesn't detect iris support, it falls back to an alpha fading effect instead.
While it does detect a large enough stencil buffer when using the old radeon DDX in User modesetting mode, in KMS mode it doesn't, so it replaces the iris effect with the aforementioned fadeout.
The game's source code for version 1.0 can be obtained here: http://www.frogatto.com/download
The SVN trunk has the following URI: svn://frogatto.com/home/ben/svn/frogatto/trunk
I have noticed this issue so far with KMS on Linux 2.6.33, 2.6.34 and now, 2.6.35 and it has been the same with various Mesa and Radeon DDX revisions from the git repositories. In all cases (except 2.6.35, which I haven't tested with UMS), the stencil buffer support is available when not in KMS operation mode. It's also possible to reproduce it so far with version 1.0, and SVN revisions both before and after the 1.0 tag of the game.
The game requires SDL, SDL_ttf, SDL_mixer, Boost.regex/system/iostreams/threads, GL, GLU and GLEW to be compiled from source. The C++ code used to detect the usability of a stencil buffer (and therefore decide whether to use the iris effect or a fadeout) is roughly the following, found in src/level_runner.cpp through two small methods, is_stencil_buffer_available() and calculate_stencil_buffer_available():
GLint stencil_buffer_bits = 0; glGetIntegerv(GL_STENCIL_BITS, &stencil_buffer_bits); return stencil_buffer_bits > 0; // if true, the stencil buffer is usable
The system configuration used for my last test:
- Debian Testing (Squeeze) amd64 with packages from the 2010-08-01 archive. - libc (eglibc) 2.11.2. - Mesa git master @ aef4500ca4ae9e5bc57560c6f9a32d9ad892975b (latest as of this writing), Gallium support disabled, only r600 and swrast DRI drivers compiled, GLX TLS and XCB support enabled. - Radeon DDX from freedesktop.org @ dacaf5d827b58c39f9e5a7ac0530f9ea6e257347 (latest as of this writing) with KMS support compiled. - libdrm @ b803918f3f77c62edf22e78cb2095be399753423 (July 1st) - Linux 2.6.35 with drm/radeon compiled as built-in, KMS enabled by default. - X.org server version 1.7.7.
The graphics controller is a Radeon HD 3200 (RS780M/RS780MN based, uses the ATI R600 DRI driver).
https://bugs.freedesktop.org/show_bug.cgi?id=29350
--- Comment #1 from Ignacio R. Morelle shadowm@wesnoth.org 2010-08-08 17:50:43 PDT --- Created an attachment (id=37708) --> (https://bugs.freedesktop.org/attachment.cgi?id=37708) Kernel log (2.6.35)
Kernel log up to right after reproducing the bug.
https://bugs.freedesktop.org/show_bug.cgi?id=29350
--- Comment #2 from Ignacio R. Morelle shadowm@wesnoth.org 2010-08-08 17:51:43 PDT --- Created an attachment (id=37709) --> (https://bugs.freedesktop.org/attachment.cgi?id=37709) X.org server log
Graphics server log up to right after reproducing the bug.
https://bugs.freedesktop.org/show_bug.cgi?id=29350
--- Comment #3 from Ignacio R. Morelle shadowm@wesnoth.org 2010-08-08 17:55:17 PDT --- Attachments #37708 and #37709 provide the kernel and X server logs after reproducing the bug, respectively.
The desktop environment in use this time was Fluxbox, so in case a compositing window manager could interfere in any way, this might prove that it isn't the case. The original report was based on the game running within KDE 4.4.5 using kwin's OpenGL compositing mode, and also when using kwin without compositing.
This also confirms that this bug is still present in the latest Git master revisions of mesa, drm and xf86-video-ati which I compiled just a few hours ago.
https://bugs.freedesktop.org/show_bug.cgi?id=29350
Corbin Simpson MostAwesomedude@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |NOTOURBUG
--- Comment #4 from Corbin Simpson MostAwesomedude@gmail.com 2010-08-13 16:57:34 PDT --- Closing as NOTOURBUG; leaving the following for posterity.
In UMS mode, r600c provides 8 bits of stencil on all configs, but in KMS mode, the normal wider variety of configs are available. The app used to have a call to SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1), but it was commented out for some reason. Uncommenting that line caused a stencilled config to be properly selected.
The moral: Always check your GL configs.
~ C.
dri-devel@lists.freedesktop.org