Mesa (master): nvc0: fix blitting red to srgb8_alpha

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 9 14:34:23 UTC 2018


Module: Mesa
Branch: master
Commit: 92f56fbd8969801fc88de606e1051dc397331e7d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=92f56fbd8969801fc88de606e1051dc397331e7d

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sun Oct  7 17:45:07 2018 -0400

nvc0: fix blitting red to srgb8_alpha

For some reason the 2d engine can't handle this. Red formats get special
treatment there, so perhaps related.

Fixes dEQP-GLES3 tests of the form:

  dEQP-GLES3.functional.fbo.blit.conversion.r{8,16f,32f}_to_srgb8_alpha8

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst at redhat.com>
Cc: mesa-stable at lists.freedesktop.org

---

 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
index 120f9fe6ab..03881c6278 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
@@ -1618,6 +1618,10 @@ nvc0_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
             if (util_format_is_alpha(info->src.format))
                eng3d = info->src.format != PIPE_FORMAT_A8_UNORM;
             else
+            if (util_format_is_srgb(info->dst.format) &&
+                util_format_get_nr_components(info->src.format) == 1)
+               eng3d = true;
+            else
                eng3d = !nv50_2d_format_supported(info->src.format);
          }
       } else




More information about the mesa-commit mailing list