diff options
author | Neha Bhende <[email protected]> | 2017-04-27 10:05:35 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2017-04-28 21:03:06 -0600 |
commit | 197907c9267c9e9372a6cbb7699e3bf1fcf787cb (patch) | |
tree | 1bef91511dc4bf04957e5c4e68c106b5ed65b923 /src/gallium/drivers/svga | |
parent | 1b415a5b2833c1642176601653021d4bbe895b35 (diff) |
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 <[email protected]>
Reviewed-by: Charmaine Lee <[email protected]>
Diffstat (limited to 'src/gallium/drivers/svga')
-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); |