radeonsi: add more cases for copying unsupported formats to resource_copy_region
authorMarek Olšák <maraeo@gmail.com>
Tue, 2 Apr 2013 22:47:06 +0000 (18:47 -0400)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 3 Apr 2013 14:58:33 +0000 (10:58 -0400)
Ported from r600g commit:

8891b2f9c91b2f6c8625184c23a10b8e55875dc0

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
NOTE: This is a candidate for the 9.1 branch.

src/gallium/drivers/radeonsi/r600_blit.c

index f9d2568..f11f110 100644 (file)
@@ -429,6 +429,18 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
                        r600_change_format(dst, dst_level, &orig_info[1],
                                           PIPE_FORMAT_R8G8B8A8_UNORM);
                        break;
+               case 8:
+                       r600_change_format(src, src_level, &orig_info[0],
+                                          PIPE_FORMAT_R16G16B16A16_UINT);
+                       r600_change_format(dst, dst_level, &orig_info[1],
+                                          PIPE_FORMAT_R16G16B16A16_UINT);
+                       break;
+               case 16:
+                       r600_change_format(src, src_level, &orig_info[0],
+                                          PIPE_FORMAT_R32G32B32A32_UINT);
+                       r600_change_format(dst, dst_level, &orig_info[1],
+                                          PIPE_FORMAT_R32G32B32A32_UINT);
+                       break;
                default:
                        fprintf(stderr, "Unhandled format %s with blocksize %u\n",
                                util_format_short_name(src->format), blocksize);