radeonsi: simplify DCC format categories
authorMarek Olšák <marek.olsak@amd.com>
Mon, 26 Mar 2018 22:52:23 +0000 (18:52 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 28 Mar 2018 22:45:52 +0000 (18:45 -0400)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/gallium/drivers/radeon/r600_texture.c

index 1614df63c98a2b46002484b226890fc9c4e01f83..eb6706c9dcd6dc4918e6df48afbd8029f864d57e 100644 (file)
@@ -1882,15 +1882,12 @@ static const struct u_resource_vtbl r600_texture_vtbl =
 /* DCC channel type categories within which formats can be reinterpreted
  * while keeping the same DCC encoding. The swizzle must also match. */
 enum dcc_channel_type {
-       dcc_channel_float32,
-       dcc_channel_uint32,
-       dcc_channel_sint32,
-       dcc_channel_float16,
-       dcc_channel_uint16,
-       dcc_channel_sint16,
+       dcc_channel_float,
+       /* uint and sint can be merged if we never use TC-compatible DCC clear
+        * encoding with the clear value of 1. */
+       dcc_channel_uint,
+       dcc_channel_sint,
        dcc_channel_uint_10_10_10_2,
-       dcc_channel_uint8,
-       dcc_channel_sint8,
        dcc_channel_incompatible,
 };
 
@@ -1909,23 +1906,15 @@ vi_get_dcc_channel_type(const struct util_format_description *desc)
 
        switch (desc->channel[i].size) {
        case 32:
-               if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)
-                       return dcc_channel_float32;
-               if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
-                       return dcc_channel_uint32;
-               return dcc_channel_sint32;
        case 16:
+       case 8:
                if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)
-                       return dcc_channel_float16;
+                       return dcc_channel_float;
                if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
-                       return dcc_channel_uint16;
-               return dcc_channel_sint16;
+                       return dcc_channel_uint;
+               return dcc_channel_sint;
        case 10:
                return dcc_channel_uint_10_10_10_2;
-       case 8:
-               if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
-                       return dcc_channel_uint8;
-               return dcc_channel_sint8;
        default:
                return dcc_channel_incompatible;
        }