diff options
-rw-r--r-- | src/gallium/drivers/svga/svga_surface.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gallium/drivers/svga/svga_surface.c b/src/gallium/drivers/svga/svga_surface.c index fdc6ba4e4da..04173266ff0 100644 --- a/src/gallium/drivers/svga/svga_surface.c +++ b/src/gallium/drivers/svga/svga_surface.c @@ -305,10 +305,17 @@ svga_create_surface_view(struct pipe_context *pipe, bind = PIPE_BIND_RENDER_TARGET; } - if (tex->imported) + if (tex->imported) { + /* imported resource (a window) */ format = tex->key.format; - else + if (util_format_is_srgb(surf_tmpl->format)) { + /* sRGB rendering to window */ + format = svga_linear_to_srgb(format); + } + } + else { format = svga_translate_format(ss, surf_tmpl->format, bind); + } assert(format != SVGA3D_FORMAT_INVALID); |