summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga
diff options
context:
space:
mode:
authorNeha Bhende <[email protected]>2017-04-27 10:05:35 -0700
committerBrian Paul <[email protected]>2017-04-28 21:03:06 -0600
commit197907c9267c9e9372a6cbb7699e3bf1fcf787cb (patch)
tree1bef91511dc4bf04957e5c4e68c106b5ed65b923 /src/gallium/drivers/svga
parent1b415a5b2833c1642176601653021d4bbe895b35 (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.c11
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);