mesa: Require mipmap completeness for glCopyImageSubData() at times.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 23 Feb 2017 23:04:52 +0000 (15:04 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 29 Jun 2017 05:29:41 +0000 (22:29 -0700)
commit40f842ab5711672a5aec7ae973998ee3a07a91d8
tree9c228a375af2b3eddc7cedc72df2c255408bae97
parent6120fbc444862a870e81b263978b5d784bb06f26
mesa: Require mipmap completeness for glCopyImageSubData() at times.

This patch makes glCopyImageSubData require mipmap completeness when the
texture object's built-in sampler object has a mipmapping MinFilter.
This is apparently the de facto behavior and mandated by Android's CTS.

One exception is that we ignore format based completeness rules
(specifically integer formats with linear filtering), as this is
also the de facto behavior that until recently was mandated by the
OpenGL 4.5 CTS.

This was discussed with both the OpenGL and OpenGL ES working groups,
and while everyone agrees this behavior is unfortunate and complicated,
it is what it is at this point.  There was little appetite for relaxing
restrictions given that all conformant Android drivers followed the
mipmapping rule, and all conformant GL 4.5 implementations ignored the
integer/linear rule.

Fixes (on i965):
dEQP-GLES31.functional.debug.negative_coverage.*.buffer.copy_image_sub_data

Bugzilla: https://cvs.khronos.org/bugzilla/show_bug.cgi?id=16224
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/mesa/main/copyimage.c