From: Marek Olšák Date: Fri, 4 Mar 2011 05:38:13 +0000 (+0100) Subject: st/mesa: set PIPE_BIND_RENDER_TARGET for sRGB formats if UNORM is supported X-Git-Tag: mesa-7.11-rc1~1675 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ba48811fa8cbe80c67cdbbb9b8180aaf64433c4e;p=platform%2Fupstream%2Fmesa.git 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. --- 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; + } }