[Bug 29350] New: No stencil buffer support for frogatto with Radeon HD 3200 KMS
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sun Aug 1 22:05:53 PDT 2010
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 at lists.freedesktop.org
ReportedBy: shadowm at 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).
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the dri-devel
mailing list