From ba48811fa8cbe80c67cdbbb9b8180aaf64433c4e Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Fri, 4 Mar 2011 06:38:13 +0100 Subject: 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 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/mesa') diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index c3c4246d13..3f98ffd3d6 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; + } } -- cgit v1.2.3