Mesa (master): st/mesa: set PIPE_BIND_RENDER_TARGET for sRGB formats if UNORM is supported
Marek Olšák
mareko at kemper.freedesktop.org
Fri Mar 4 13:53:44 UTC 2011
Module: Mesa
Branch: master
Commit: ba48811fa8cbe80c67cdbbb9b8180aaf64433c4e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba48811fa8cbe80c67cdbbb9b8180aaf64433c4e
Author: Marek Olšák <maraeo at gmail.com>
Date: Fri Mar 4 06:38:13 2011 +0100
st/mesa: set PIPE_BIND_RENDER_TARGET for sRGB formats if UNORM is supported
Because the format can be changed to UNORM in a surface.
This fixes:
state_tracker/st_atom_framebuffer.c:163:update_framebuffer_state:
Assertion `framebuffer->cbufs[i]->texture->bind & (1 << 1)' failed.
---
src/mesa/state_tracker/st_cb_texture.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index c3c4246..3f98ffd 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -227,8 +227,15 @@ default_bindings(struct st_context *st, enum pipe_format format)
if (screen->is_format_supported(screen, format, target, 0, bindings, geom))
return bindings;
- else
- return PIPE_BIND_SAMPLER_VIEW;
+ else {
+ /* Try non-sRGB. */
+ format = util_format_linear(format);
+
+ if (screen->is_format_supported(screen, format, target, 0, bindings, geom))
+ return bindings;
+ else
+ return PIPE_BIND_SAMPLER_VIEW;
+ }
}
More information about the mesa-commit
mailing list