This isn't actually supported by the GL_ARB_copy_image spec.
---
 tests/spec/arb_copy_image/formats.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/tests/spec/arb_copy_image/formats.c 
b/tests/spec/arb_copy_image/formats.c
index 8a5faa7..aa9b4d3 100644
--- a/tests/spec/arb_copy_image/formats.c
+++ b/tests/spec/arb_copy_image/formats.c
@@ -261,10 +261,21 @@ is_format_supported(struct texture_format *format)
 static bool
 are_formats_compatible(struct texture_format *f1, struct texture_format *f2)
 {
-       if (f1->can_be_reinterpreted && f2->can_be_reinterpreted)
-               return f1->bytes == f2->bytes;
+       if (f1 == f2)
+               return true;
+
+       if (is_format_compressed(f1)) {
+               if (is_format_compressed(f2))
+                       /* Compressed-to-compressed copies are not supported */
+                       return false;
 
-       return f1 == f2;
+               return f1->bytes == f2->bytes;
+       } else if (is_format_compressed(f2)) {
+               return f1->bytes == f2->bytes;
+       } else {
+               return f1->can_be_reinterpreted && f2->can_be_reinterpreted &&
+                      f1->bytes == f2->bytes;
+       }
 }
 
 static const float green[3] = {0.0, 1.0, 0.0};
-- 
2.3.2

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to