From 197907c9267c9e9372a6cbb7699e3bf1fcf787cb Mon Sep 17 00:00:00 2001 From: Neha Bhende Date: Thu, 27 Apr 2017 10:05:35 -0700 Subject: [PATCH] svga: implement sRGB rendering for imported surfaces If texture is imported and templ format is sRGB, use compatible sRGB format to the imported texture format while creating surface view. tested with MTT piglit, glretrace, viewperf and conform Reviewed-by: Brian Paul Reviewed-by: Charmaine Lee --- src/gallium/drivers/svga/svga_surface.c | 11 +++++++++-- 1 file 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); -- 2.30.2