diff options
author | Marek Olšák <maraeo@gmail.com> | 2010-12-22 01:58:52 +0100 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2010-12-23 16:54:58 +0100 |
commit | 4a710469e0df18220ff13f91e007738aebce640e (patch) | |
tree | 14ec175d65972e02589bbb13eaf1996b9cad4577 /src/mesa | |
parent | 998657112b09f354232ab521dc62f00aa77921d9 (diff) |
st/mesa: do not require all texture formats to be renderable
This is a bandaid on the problem that if some formats were not renderable
(like luminance_alpha), st/mesa fell back to some RGBA format, so basically
some non-renderable formats were actually not used at all. This is only
a problem with hardware drivers, softpipe can render to anything.
Instead, require only RGB8/RGBA8 to be renderable.
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/state_tracker/st_format.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index 1ae6013c09..f6a44a8bf0 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -1028,8 +1028,13 @@ gl_format st_ChooseTextureFormat(struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type) { + boolean want_renderable = + internalFormat == 3 || internalFormat == 4 || + internalFormat == GL_RGB || internalFormat == GL_RGBA || + internalFormat == GL_RGB8 || internalFormat == GL_RGBA8; + return st_ChooseTextureFormat_renderable(ctx, internalFormat, - format, type, GL_TRUE); + format, type, want_renderable); } /** |