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@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
Ilia Mirkin 2018-10-07 17:45:07 -04:00
parent 9bf0614116
commit 92f56fbd89

View file

@ -1617,6 +1617,10 @@ nvc0_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
else
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);
}