Mesa (master): st/mesa: call update_renderbuffer_surface for sRGB renderbuffers, too
Christoph Bumiller
chrisbmr at kemper.freedesktop.org
Sat Jul 28 12:57:15 UTC 2012
Module: Mesa
Branch: master
Commit: 51e41a0d894109249448ecc6a6bfc09e095acada
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=51e41a0d894109249448ecc6a6bfc09e095acada
Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date: Fri Jul 20 20:57:45 2012 +0200
st/mesa: call update_renderbuffer_surface for sRGB renderbuffers, too
sRGBEnabled should affect both textures and renderbuffers, so we need
to check/update the pipe_surface format for both.
Fixes, for instance, rendering appearing too bright in wine applications
using sRGB multisample renderbuffers.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: Brian Paul <brianp at vmware.com>
---
src/mesa/state_tracker/st_atom_framebuffer.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c b/src/mesa/state_tracker/st_atom_framebuffer.c
index 6f94a47..a10dbfb 100644
--- a/src/mesa/state_tracker/st_atom_framebuffer.c
+++ b/src/mesa/state_tracker/st_atom_framebuffer.c
@@ -53,7 +53,7 @@ update_renderbuffer_surface(struct st_context *st,
struct st_renderbuffer *strb)
{
struct pipe_context *pipe = st->pipe;
- struct pipe_resource *resource = strb->rtt->pt;
+ struct pipe_resource *resource = strb->rtt ? strb->rtt->pt : strb->texture;
int rtt_width = strb->Base.Width;
int rtt_height = strb->Base.Height;
enum pipe_format format = st->ctx->Color.sRGBEnabled ? resource->format : util_format_linear(resource->format);
@@ -121,7 +121,8 @@ update_framebuffer_state( struct st_context *st )
if (strb) {
/*printf("--------- framebuffer surface rtt %p\n", strb->rtt);*/
- if (strb->rtt) {
+ if (strb->rtt ||
+ (strb->texture && util_format_is_srgb(strb->texture->format))) {
/* rendering to a GL texture, may have to update surface */
update_renderbuffer_surface(st, strb);
}
More information about the mesa-commit
mailing list